C语言中强制类型转换这样写对吗? int i,j;double s=0.0; s=s+(1.0)i/j;

如题所述

判断题
21、 语言函数的缺省(默认)类型是 void 型(空类型)。( 错)
22、 在 C 语言中,函数不能嵌套定义,但可以嵌套调用。(错 )
23、 一个程序中可以使用多条文件包含命令,但一条文件包含命令只能包含一个(对)
24、 在同一个数组中可以存储许多不同类型的值。(错 )
25、 C 语言中,变量名用大小写是等价的。(错 )
26、 C 语言的所有循环语句都要求至少要执行一次循环体。( 错)
27、 C 语言中,注释可以出现在源程序中空格可以出现的任何位置。(错 )
28、 C 语言规定:在一个源程序中,main 函数的位置可以任意。( 对)
29、 在同一种数据类型中,变量值越大,它所占内存的字节数越多。(错 )
30、 在 C 语言中,十六进制数是用英文字母 o和 x 后加一个整数来表示,例如 ox12f
31、 使用宏定义时,宏名可以是大写或者小写,但是常用大写字母表示。( 对)
32、 强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。( 对)
33、 当 C 语言的函数先使用后定义时,应该作提前声明。(对,但有的可免声明 )
34、 在 C 语言程序中,不允许变量同名。( 错)
35、 C 语言的所有循环语句都要求至少要执行一次循环体。( 错)

程序填空题
36、 从键盘读入一个字符串,求该字符串的长度。
#include <stdio.h>
int len(char *);
void main()
{
char str[80];
printf("Please input a string:");
scanf("%s",str);
printf("The length of the string is %d.\n",len(str));
}
int len(char * p)
{
int n=0;
while(*p!='\0')
{
n++;
___________________________p++;_____________
}
return (n);
}

37、 从键盘读入一个字符串,统计其中英文小写字母的个数。
#include "string.h"
#include "stdio.h"
void main()
{
char s[80];
int i,n=0;
gets(s);
for(i=0;s[i]!='\0';i++)
____if(s[i]>='a'&&s[i<='z'])______n++;_____________________________________
printf("n=%d\n",n);
}
38、 从键盘读入两个数,求其最大者。
#include "stdio.h"
int max(int,int);
void main()
{
int a,b,c;
printf("a=");scanf("%d",&a); printf("\nb=");scanf("%d",&b);
c=max(a,b);
printf("\nmax is %d\n",c);
max(int x,int y)
________________________________________________
39、 采用下面的公式编程求π ,要求计算到最后一项的值小于 10-6为止

lude <stdio.h>
lude <math.h>
main()
double n=1,t=0,pi=0.0,s=1.0,epselon;
do
{
t=s/n;
pi+=t;
___s=-s;____________________________
n+=2;
epselon=fabs(t);
}while(epselon>=1e-6);
printf("pi=%8.6f\n",4*pi);
}
序分析题
40、
#include <stdio.h>
void main()
{
int a[3][3]=,,};
int i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==2-j) s=s+a[i][j];
printf("s=%d\n",s);
}
运行结果:__2,7,5_______________________________________
41、
#include <stdio.h>
int sub(int n)
{
if(n==1) return 1;
return n+sub(n-1);
}
void main()
{
printf("%d\n",sub(5));
}
运行结果:__15_______________________
42、
#include <stdio.h>
int x=2,y=5;
void f()
{
int x=0;
x++;
y++;
printf("%d,%d,",x,y);
}
void main()
{
int x=8;
f();
f();
printf("%d,%d\n",x,y);
}
运行结果:____1,y;1,y;8,5________________________________
43、
#include <stdio.h>
#define N 5
void main()
{
char s[N][N];
int i, j;
for(i=0;i<N;i++)
{
s[i][i]='+';
for(j=i+1;j<N; j++)
{
s[i][j]='*';
s[j][i]='0';
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%3c",s[i][j]);
printf("\n");
}
}
行结果:_____+****
0+***
00+**
000+*
0000+ _____________________
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-18
肯定可以啊!因为1.0是实数,i和j是整数。实数和整数一起运算的时候,整数要先转化成实数的。有关不同类型的数进行运算的时候怎样转换的,还是去看看C语言的书吧!
第2个回答  2016-12-25
#include <stdio.h>
double b2d(char *s);
int main(void)
{
char s[100];
while(gets(s))
{
fflush(stdin);
printf("%.0lf\n",b2d(s));
}
return 0;
}
double b2d(char *s)
{
double n;
for(n=0;*s;++s)
{
n=n*2+*s-'0';
}
return n;
}
第3个回答  2011-09-18
可以 s=s+1.0*i/j;或者 s=s+(double)i/j;本回答被网友采纳
第4个回答  2011-09-18
貌似不是,不记得了

C语言中强制类型转换这样写对吗? int i,j;double s=0.0; s=s+(1.0...
32、 强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。( 对)33、 当 C 语言的函数先使用后定义时,应该作提前声明。(对,但有的可免声明 )34、 在 C 语言程序中,不允许变量同名。( 错)35、 C 语言的所有循环语句都要求至少要执行一次循环体。( 错)程序填空题 36、 从键盘...

c语言 double s=0; double s=0.0;哪个写法正确? 为什么
都一样 double s=0是 用个int型强制转换成double型,再放入double里面(如果是double强转int可能会导致数据遗失);而double s=0.0 就是直接把double型放到s里面.两个都能编译通过 也不能说 什么正不正确了...想养成编写好习惯还是写double s=0.0规范一些....

C语言怎么主动把一个数的类型转换
类型不同,不能赋值,即使编译器不提示错误,那么得到的计算结果也是错的

C语言中结构体变量能不能强制类型转换
你写的程序不太完整,不能看是否正确。例如:“PRO cell;”,“sell[i].mc”的由来。从你的最后一句话可以大概猜出一些原因:因为用“strcmp”就行,而“strcmp”是专门处理字符串的,所以“sell[i].mc”的实际内容是字符串。可是你用“long”做强制类型字符串,这当然不行。以上只是推断,不一定...

c语言如何将double转换为int
在C语言中,可以使用强制类型转换将double类型转换为int类型。强制类型转换的语法如下:int i = (int) d;其中,d是double类型的变量,(int)是强制类型转换符,将d的值转换为int类型,并将结果赋值给变量i。请注意,强制类型转换会将double类型的小数部分截断,只保留整数部分。如果double类型的值超出了...

keil中 c语言中的强制转换符问题
所有这些转换都是由系统自动进行的,使用时你只需从中了解结果的类型即可。这些转换可以说是自动的,但然,C语言也提供了以显式的形式强制转换类型的机制。● 当较低类型的数据转换为较高类型时,一般只是形式上有所改变, 而不影响数据的实质内容, 而较高类型的数据转换为较低类型时则可能有些数据...

这个c语言判断哪里错了
运算时会对数据进行强制类型转换 如果你求的参量是int型 输出的数据强制转化成int型,不需要先转换

C语言中,如果事先定义s为double型的变量,那么赋值时s=0和s=0.0是否都...
C语言中有默认的数据类型转化,一般会把整型自动转化为实型。如:double s=0; 事实上C语言赋值时真正赋的值为0.0,也就是相当于S=0.0

C语言算i+j,把这段代码中的double换成float就对了,这是为什么?double和f...
double和float都一样的。Double比F大。不过%f错了还有,你中间的花括号其实没用的。

强制类型转换 (float)(1\/2)=0.0为什么
强制转换成浮点行当然是要有小数点的。一个是将0.5的整型变为浮点型,在得到整型时已经是等于0了。另一个是输出符点型。你打一下1\/2=x;输出x,就明白了。

相似回答