问题
单项选择题
若有以下程序
#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.2,1,2,-1
C.2,2,2,4
D.1,2,3,4
答案
参考答案:A
解析: 执行第一个if语句,a赋值为2,b赋值为1,if表达式的值为真,故而c为2;执行第2个if语句,c值不变,d赋值为2,再看if表达式的条件,“c==3”的值为假(0),“d=-1”的值为真(1),两个结果再进行“||”运算后,结果为真,所以a又被赋值为5。最后a=5,b=1,c=2,d=-1,故选A。