问题 单项选择题

下列程序的运行结果是
#include"stdio.h"
main()
intx=-9,y=5,z=8;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);

A) 6
B) 7
C) 8
D) 9

答案

参考答案:D

解析: if…else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于x<y&&y<0时,z=0;当x<y&&y>=0时,z=2+1。

单项选择题
问答题 论述题