问题
单项选择题
有以下程序
#include <stdio.h>
mare()
int x=1,y=2,z=3;
if(x>y)
if(y<z) printf("%d",++z);
else printf("%d",++y);
printf("%d\n",x++);
程序的运行结果是______。
A) 331
B) 41
C) 2
D) 1
答案
参考答案:D
解析:[评析] 本题考查的是if语句的嵌套。C语言规定else总是与它上面的最近的且不带else的if配对,所以本题else与if(y<z)配对,即为内嵌if。在程序执行时,先判断if(x>y)的条件表达式x>y,即1>2,不成立,所以不执行内嵌if,直接执行“printf("%d",x++);”语句。由于x++表示在使用后再将x加1,所以输出1。