求救:计算机C语言问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:32:22
已知变量定义
i=0;
do printf("%d,",i);
while(i++);
printf("%d\n",i);
其输出结果是什么?

求懂C语言的高手,马上要全国考计算机二级,这道题怎么解?麻烦过程说明一下,谢谢.

这是考查do...while型循环运算的应用,执行次数>=1,先执行循环体,再判断循环是否继续,所以,这道题第一次输出为0.循环条件i++,若表达式值为非0时,即条件为真,继续执行;反之不执行.

即输出结果是0,1

输出结果是0,1
i=0;
do printf("%d,",i);
此时程序输出0,但不换行(i=0)
然后while(i++);
此时i++是后加运算,先判断i,此时i=0,循环结束
再将i加1,i=1
再运行printf("%d\n",i); 输出1,并换行
所以结果为0,1

OK!

01

首先要理解:
i++是先使用i,然后加1。
do while是先执行do,再判断while的条件,为真就再执行do,为假(值为0)就退出do while

然后走流程:
因为do printf("%d,",i); 这里会打印出i的值为0,
接着while(i++); ,i为0,不执行循环,然后i自增1,
接着printf("%d\n",i); 这里会打印出i的值为1,
所以输出为: 01

i=0;
do printf("%d,",i);
while(i++);
printf("%d\n",i);

答案是零.
因为先遇到DO,所以程序会执行后面的输出语句.然后再判断条件.因为I++是先用I的值,等本行语句执行完后再自动加一,所以条件不符合,退出循环.
答案是:0

应该是 0 1 吧
do-while 语句先执行循环体,然后再根据循环体内产生的新数据重新判断循环条件。不论循环条件是真是假,至少会循环一次。
i=0;执行 do printf("%d,",i); 输出i=0;重新判断循环条件while(i++); i=0;i++;i