问题 单项选择题

有以下程序:
#include <stdio.h>
main()
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…else语句。C语言规定else总是与最近的if搭配,因此程序中else与第二个if搭配。程序首先判断(x>y),为假,所以跳过后面的整个if…else语句。执行到输出语句时,x的值仍为1,x++返回x增1之前的结果1,故应该选择D)。

选择题
判断题