早教吧 育儿知识 作业答案 考试题库 百科 知识分享

二级c语言的一道题有以下程序#includemain(){inta=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是.(2012年9月,选择20题)A.1,3B.0,2C.0,3D.1,2就是搞不清楚怎么加,麻烦一步步讲下

题目详情
二级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