单选题 若变量已正确定义,有以下程序段:
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)。