c语言以下循环体的执行次数是 1为什么

1.18
下列程序执行后的输出结果是(小数点后只写一位)
6 6 6.0 6.0为什么
main() { double d; float f; ling l; int i; i=f=l=d=20/3;
printf("%d %ld %f %f \n", i,l,f,d);}

1.22
以下循环体的执行次数是 1为什么
mian() { int i,j; for(i=0,j=1;j<=j+1;i+=2,j--}printf("%d \n",i);}

第一题,20/3在C语言中默认是用整型计算的,因此得到的结果也是整型的,所以返回6,把6用%f打印出来就是6.0了。

第二题,j<=j+1这个条件不管j是多少都为真,因此只会循环一次。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-04-16
1,20/3默认是用整型计算,再附值
2,for(i=0,j=1;j<=j+1;i+=2,j--)是个死循环
第2个回答  2006-04-16
第一题,20/3在C语言中默认是用整型计算的,因此结果只去整数部分,所以返回6,把6用%f打印出来就是6.0了。
第二题j<=j+1打错了吧。应该是i<j+1吧。这是个死循环,j<=j+1始终为真,怎么可能执行一次。
第3个回答  2006-04-16
不知道大家想过没有,在计算机中数是有范围的.所以我认为j<=j+1不是永为真.例如,当用8为来表示整数(有符号)时,127为最大整数,在加1,就变为-128了,此时条件不就不成立了.所以我认为,不一定是一个死循环,只是输出的次数太多,像个死循环.不知大家是否认可?
相似回答