作业帮 > 综合 > 作业

二级c语言的一道题有以下程序#include main(){ int a =-2,b=0;while(a++&&++b)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 09:55:17
二级c语言的一道题
有以下程序
#include
main()
{ int a =-2,b=0;
while(a++&&++b);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是 ______ .(2012年9月,选择20题)
A.1,3
B.0,2
C.0,3
D.1,2
就是搞不清楚怎么加,麻烦一步步讲下,
答案是D.
首先,你要知道a++ 和++a 即两个加号写在前面和后面的不同.
写在后面:先运算,再加1;写在前面:先加1,再运算.
所以上面的情况是:
第一次进while:发现a=-2,b加1后为1,因为while语句里什么也不做,所以进入下一次循环;
第二次进while:发现a=-1,b加1后为2,同理,进入下一个循环;
第三次进while:发现a=0,而与操作有一个为0就全为0,所以不用判断b,直接退出while,而a在本次循环中加了一次,所以a=1,而b不变.
所以a=1,b=2
再问: 第二次进while,a自增1为-1没错,b在上一次循环中已经加了,这次为什么还要加1?
再答: 是的,只要执行++b这条语句,就先加1,再运算