问题 单项选择题

设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是

A.if(a>b)c=a,a=b,b=c;

B.if(a>b){c=a,a=b,b=c;}

C.if(a>b)c=a;a=b;b=c;

D.if(a>b){c=a;a=b;b=c;}

答案

参考答案:C

解析: 选项A)和选项B)中运用了逗号表达式。逗号表达式的运算过程为:从左往右逐个计算表达式。逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。所以选项A)和选项B)程序执行后a、 b、c的值都分为1、2、3,而选项C)因为对应的if语句没有用{}将交换语句括起来,所以第一句c=a不执行,执行后为:2、3、3。

单项选择题
单项选择题