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

admin2019-01-11  33

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

答案C

解析 第一个if语句的判断条件是逻辑与表达式,只有运算对象均非零,结果才为真。执行第一个if判断条件,均为赋值表达式,第一个运算对象a=2非零,判断第二个表达式b=1也非零,所以条件成立,执行c=2的赋值操作。执行第二个if判断条件的逻辑或表达式,只要有一个对象非零,结果就是真。本条件中c==3运算对象为假,所以需要判断第二个运算对象d=一1,结果为一1,非零,条件成立,执行a=5的操作,所以a值为5,b值为1,c值为2,d值为一1。
转载请注明原文地址:https://kaotiyun.com/show/HZxp777K
0

最新回复(0)