问题
单项选择题
若变量已正确定义,有以下程序段:
int a=3, b=5, c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d, %d, %d\n", a, b, c);
其输出结果是( )。
A) 程序段有语法错
B) 3, 5, 3
C) 3, 5, 5
D) 3, 5, 7
答案
参考答案:B
解析: 本题是一个陷阱题,以书写格式来考查考生对if语句的理解。if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有a=b;和c=b;是if的子句。第1条if语句中a>b为假,所以跳过语句a=b;,执行c=a;后,a=3、b=5、c=3。第2条if语句的判断条件c!=a为假,所以跳过语句c=b;。故最终输出的结果是:3,5,3,应该选择B)。