有以下程序: #include<stdio.h> main() { int x=1,y=2,z=3; if(x>y) if(y<z)printf("% d",++z); else printf("%d",++y); pr

admin2020-11-27  28

问题 有以下程序:
#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/fez0FFFM
0

最新回复(0)