有以下程序 #include main() { int a=0,b=0,c=0,d=0; (++a || ++b) ? ++c : ++d; printf("%d,%d,%d,%d\n", a,b,c,d); } 程序的运行结果是( )。

admin2020-11-23  17

问题 有以下程序
#include
main()
{ int a=0,b=0,c=0,d=0;
(++a || ++b) ? ++c : ++d;
printf("%d,%d,%d,%d\n", a,b,c,d);
}
程序的运行结果是( )。

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

答案A

解析 条件表达式的形式为: 表达式1 ? 表达式2 : 表达式3 ,计算"表达式1"的值,若为"真",取"表达式2"的值作为整个条件表达式的值;若为"假",取"表达式3"的值作为整个条件表达式的值。根据逻辑或表达式的"短路"现象,表达式"++a||++b"的结果为真,a=1,b=0,之后计算"++c"。所以整个条件表达式执行完毕之后:a=1,b=0,c=1,d=0,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/lVD0FFFM
0

最新回复(0)