问题 单项选择题

以下程序运行后的输出结果是 #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。

单项选择题
判断题