若有以下程序 #include main() { int a=1,b=2,c=3,d=4; if ((a=2) && (b=1)) c=2; if ((c==3) || (d=-1)) a=5; printf("%d,%d,%d,%d\n", a,b,c

admin2015-07-28  17

问题 若有以下程序
#include
main()
{ int a=1,b=2,c=3,d=4;
if ((a=2) && (b=1)) c=2;
if ((c==3) || (d=-1)) a=5;
printf("%d,%d,%d,%d\n", a,b,c,d);
}
则程序的输出结果是( )。

选项 A、5,1,2,-1
B、2,1,2,-1
C、2,2,2,4
D、1,2,3,4

答案A

解析 该程序中所有的逻辑表达式均不满足"短路求值"原理,所以所有的表达式都需要计算,第一个if语句执行完毕之后,a=2,b=1,c=2,第二个if语句执行完毕之后,d=-1,a=5,所以最终的a=5,b=1,c=2,d=-1,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/hdJp777K
0

最新回复(0)