有下列程序  #include<stdio.h>  main()  {   int a=1,b=1,c=1;   if(a--||b--&&--C) printf("%d,%d,%d\n",a,b,c);   else   printf("%

admin2022-04-02  16

问题 有下列程序
 #include<stdio.h>
 main()
 {
   int a=1,b=1,c=1;
   if(a--||b--&&--C)   printf("%d,%d,%d\n",a,b,c);
   else
    printf("%d,%d,%d\n",a,c,b);
 }
 程序执行后的输出结果是(          )。

选项 A、0,1,0
B、0,1,1
C、0,0,1
D、0,0,0

答案B

解析 if条件表达式“a--||b--&&--c”,使用了逻辑或运算符和逻辑与运算符,由于逻辑与运算符优先级比逻辑或运算符优先级高,所以条件表达式等价于(a--)||(b--&&--c),自左向右运算,执行a--,由于a初值为1,所以a--的值为1,执行完后a的值为0;又因为逻辑或运算符的短路原则,当a--的值为1时,条件为真,后面的表达式b--&&--c不执行。程序执行if语句块,输出a、b、c的值为:0,1,1。本题答案是B选项。
转载请注明原文地址:https://jikaoti.com/ti/dOd0FFFM
0

最新回复(0)