问题 单项选择题

有以下程序
#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。

选择题
判断题