C语言问题 第十八题 不明白程序是如何进行的,能把流程图画出来吗?

如题所述

正确答案为A
int a=0,b=30;
do
{
b-=a; b==30,a==0
if(b<5) 30<5为假
; 这里不执行
break; 执行这里,跳出循环
a+=5;
}while(a);
printf("%d,%d\n",a,b); 跳到这里, 输出,a=0,b=30
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-19
A while(a)即当a不为0时执行do 里面的循环体,一开始a=0,那么循环题就不会被执行,输出的就是原来的a,b追问

不是先执行循环体,然后判断循环条件是否成立吗?那这样的话,a的值不是改变了吗?

追答

哦,是的,我错了,答案还是A,先执行b-=a,b还是30,在执行if语句,但是注意题目里这句话后面是分号,语句结束了,再接下来执行break,跳出循环了

如果把if语句后面的分号去掉就是选D的

相似回答