有以下程序:  #include<stdio.h>  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

admin2022-10-24  15

问题 有以下程序:
 #include<stdio.h>
 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

答案B

解析 else总是和最近的if配对。进入第1个if语句进行条件判断时,因为是逻辑与运算,需要两边运算对象的值均为非零值才为真,所以需要逐个执行判断。结果为1,进入第2个if语句进行条件判断。因为“b!=2”条件成立,所以整个条件表达式的值为真,不再执行逻辑或的第2个运算对象“c--!=3”,变量c的值不变,也不再执行第1个else语句。输出a的值1,b的值3,c的值3。故本题答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/iBd0FFFM
0

相关试题推荐
最新回复(0)