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

admin2021-02-25  30

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

最新回复(0)