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

admin2022-10-25  3

问题 有下列程序:
     #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://www.kaotiyun.com/show/4Ckp777K
0

最新回复(0)