问题 单项选择题

有定义语句:“int a=1,b=2,c=3,x;”,则以下选项中各程序段执行后,x的值不为3的是( )。

A.if(c<x=1; elseif(b<x=2; elsex=3;

B.if(a<3)x=3; elseif(a<2)x=2; elsex=1;

C.if(a<3)x=3; if(a<2)x=2; if(a<1)x=1;

D.if(a<x=b; if(b<X=c; if(c<x=a;

答案

参考答案:C

解析: 选项A首先判断if语句条件中表达式的值3<1为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值2<1为假,程序执行其最近的else后面的语句,将3赋值给x。选项B中首先判断if语句条件中表达式的值1<3为真,然后执行最近的else后面的语句x=3,后面的else不再执行,最后x的值为3。选项C中,首先执行第一条if语句,由于1<3为真,执行此if后面的语句x=3,接着执行第二条if语句,由于1<2为真,执行此if后面的语句x=2,接着执行第三条if语句,由于1<1为假,后面的语句不执行,所以最后的x值为2不为3。选项D中,首先执行第一条if语句,由于 a<b为真,执行此if后面的语句x=b:接着执行第二条if语句,由于b<c,为真,执行此if后面的语句x=c,接着执行第三条if语句,由于c<a为假,后面的语句不执行,所以最后的x值为c,即为3。所以,4个选项中选项C符合题意。

单项选择题
单项选择题