柠檬试题库
search
首页 计算机 公务员 驾照 关于

有以下程序 #include main() { int a=1,b=2,c=3,d=0; if (a==1 && b++==2) if (b!=2||c--!=3) printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c); } 程序运行后的输出结果是


  • A.1,3,2
  • B.1,3,3
  • C.1,2,3
  • D.3,2,1
热度🔥309
参考答案:B
解析:

【解析】else总是和最近的if配对,所以进入第一个if语句中条件判断时,因为是逻辑与操作需要两边运算对象的值均为非零值,才为真,所以需要逐个执行判断的结果为1,不再执行第二个case语句中的操作。而是进入第二个if语句条件判断,因为b!=2条件成立所以整个条件表达式的值为真,所以不再执行逻辑或的第二个运算对象(c-- !=3)c的值不变,也不再执行第一个else语句。打印a的值1,b的值3,c的值3。
复制题目向AI提问