123.有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0,d=0; (a++ && b++) ? c++ : d++; printf(

123.有以下程序
#include <stdio.h>
main()
{ int a=0,b=0,c=0,d=0;
(a++ && b++) ? c++ : d++;
printf("%d,%d,%d,%d\n", a,b,c,d);
}

程序的运行结果是( )。答案:D
A)1,1,1,0

B)1,1,0,1

C)1,0,1,0

D)1,0,0,1
解题过程

首先,判断(a++&&b++)这个条件,这个条件中又首先判断a++,得到结果为假(由于是后置自增运算符,所以a在判断的时候为0,判断之后为1)。&&运算中,只要有一个条件为假,则整个条件为假,所以程序不再判断b++这个条件,并且将(a++&&b++)这个条件判定为假。所以程序执行冒号后面的d++。所以a=1,b=0,c=0,d=1。所以答案选D
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答