有以下程序 #include<stdio.h> 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)

admin2022-06-24  15

问题 有以下程序
#include<stdio.h>
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、1,2,3,4
C、2,2,2,3
D、2,3,4,2

答案A

解析 执行第1个if语句,a赋值为2,b赋值为1,if表达式的值为真,所以C的值是2;执行第2个if语句,c的值不变,由前面可知c赋值为2,根据题干中给出的if表达式中的条件,“c==3”的值为假(0),“d=-1”的值为真(1),这两个结果进行“∣∣”运算之后,结果为真,所以3又被赋值为5。
转载请注明原文地址:https://kaotiyun.com/show/jFkp777K
0

最新回复(0)