执行下列程序段后,输出结果是________。

int a=1,b=10;
do﹛b-=a;a++;﹜
while (b--<0);
printf ("a=%d,b=%d\n",a,b);
请详细说明,谢谢!

输出a=2,b=8

分步来
首先明确while(b--<0)的实际含义, 是判断b是否小于0, 然后将b自减1;

初始值a=1,b=10;

进入do中的循环
b-=a; a++; // 此时b=9, a=2

判断(b--<0), 不成立, 之后b自减1, b的值为8
因为判断不成立,所以结束循环
所以此时a=2, b=8
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-14
2,8
记得后++--用的是++--之前的数据,比较完之后再++--的!
补充zzj的
第2个回答  2012-07-14
int a=1,b=10;
do﹛b-=a;a++;﹜//等价 do{b=b-a;a++},第一次执行后,b=10-1=9,a=2
while (b--<0); //b--后 b=8>0,不满足条件,所以退出do循环。
printf ("a=%d,b=%d\n",a,b); //输出 a=2 b=8
第3个回答  2012-07-14
结果是a=2,b=8,
int a=1,b=10;
do﹛b-=a;a++;﹜//这里b=b-a,所以b=10-1=9,a++则a=a+1=1+1=2,
while (b--<0);//这里b--所以b=9-1=8,而8>0,不符合所以跳出循环
printf ("a=%d,b=%d\n",a,b);//印出结果,即a=2,b=8本回答被提问者采纳
相似回答