A-A+
有定义语句:“int a=1 b=2 c=3 x;” 则以下选项中各程序段执行后 x的值不为
问题详情
有定义语句:“int a=1,b=2,c=3,x;”,则以下选项中各程序段执行后,x的值不为3的是()。
A.if(c<a)x=1; else if (b<a) x=2; else x=3;
B.if(a<3)x=3; else if (a<2) x=2; else x=1;
C.if(a<3) x=3; if (a<2) x=2; if (a<1) x=1;
D.if(a<b)x=b; if (b<c) x=c; if (c<a) 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符合题意。