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

admin2021-06-15  49

问题 有以下程序:
#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://jikaoti.com/ti/q1z0FFFM
0

最新回复(0)