若有以下程序: #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

admin2020-11-27  29

问题 若有以下程序:
    #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、1,2,3,4
B、2,1,2,-1
C、5,1,2,-1
D、2,2,2,4

答案D

解析 第一个if语句的判断条件是逻辑或表达式,所以只要有一个运算对象为真结果就为真,且如果前面的已经为真,后面的表达式不再进行执行判断。执行第一个if判断条件时a的值为2,整个表达式的值为真,b的值不变,c的值为2。判断第二个if条件为逻辑与表达式,只有两个运算对象均非零,才为真,第一个表达式c==3,不成立,不再判断第二个运算对象,所以不执行d=一1操作和a=5操作。所以结果为选项D。
转载请注明原文地址:https://jikaoti.com/ti/ZFD0FFFM
0

最新回复(0)