问题
单项选择题
以下程序运行后的输出结果是 #include<stdio.h> main(){ int a=1, b=0; if(!A) 1)++; else if(a==0) if(A) b+=2; else b+=3; printf("%d\n", b); }
A.0
B.1
C.2
D.3
答案
参考答案:A
解析: 本题解题的关键是嵌套的if语句中else和哪个if配对的问题。程序中,第一个else与第一个if配对,第二个else与第三个if配对,而第二个if没有else与之配对。程序的执行过程为:首先判断条件“!a”,a的值为1,“!a”的值为0,条件为假,执行第一个else分支。再判断“a==0”,条件仍然为假,由于第二个if没有else分支,所以程序流程跳出if语句,执行printf,输出b的值,b的值没有改变,仍然为0。