有定义语句: "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<l)x=1;
D) if(a<b) x=b;
if(b<c) x=c
if(c<a) x=a;
参考答案:C
解析: 本题考核的知识点是 if-else语句的程序分析。
选项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”,接着执行第三条语句,由于“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符合题意。