微信公众号图片编辑器:c语言以下循环体的执行次数是 1为什么

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 20:37:06
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,20/3默认是用整型计算,再附值
2,for(i=0,j=1;j<=j+1;i+=2,j--)是个死循环

第一题,20/3在C语言中默认是用整型计算的,因此结果只去整数部分,所以返回6,把6用%f打印出来就是6.0了。
第二题j<=j+1打错了吧。应该是i<j+1吧。这是个死循环,j<=j+1始终为真,怎么可能执行一次。

不知道大家想过没有,在计算机中数是有范围的.所以我认为j<=j+1不是永为真.例如,当用8为来表示整数(有符号)时,127为最大整数,在加1,就变为-128了,此时条件不就不成立了.所以我认为,不一定是一个死循环,只是输出的次数太多,像个死循环.不知大家是否认可?