有以下程序: #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++);

admin2022-06-24  25

问题 有以下程序:
#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、3 3 1
B、4 1
C、2
D、1

答案D

解析 else子句总是与最前面最近的不带else的if相结合,与书写格式无关,所以本题中的else语句与第二个if语句配对,且if和else都在第一个if的控制范围内。首先判断x>y不成立,直接退出第一个if语句,执行printf("%d\n",x++)。(x++)的值是x加之前的值,所以输出结果为1。
转载请注明原文地址:https://kaotiyun.com/show/1Gkp777K
0

最新回复(0)