首页 > 试题广场 >

运行以下程序片段的输出结果是?()#include "std

[单选题]
运行以下程序片段的输出结果是()
#include <stdio.h>
int main() {
    int x, y = 6, z = 5;
    x = y == z;
    printf("%d\n", x);
    return 0;
}
  • 6
  • 0
  • 1
  • 5
  • 编译错误
把题目写在选项里面了??
发表于 2018-04-04 08:55:59 回复(0)
正确答案,编译错误 = =
发表于 2018-03-23 14:12:54 回复(2)
答案:B(这题主要考"="和"=="优先级的问题)
#include <stdio.h>
int main() {
    int x, y = 6, z = 5;    // 对x,y,z进行初始化
    x = y == z;               //  ①"=="(结合方向:左到右)的优先级大于"="(结合方向右到左)
                                   //  所以此时首先判断y与z是否相等,==运算符,等式成立返回真(1),不成立返回假(0)。此时明显不成立,返回0。
                                   //  那么此时 y==z 就为0。相当于x = y == z 为 x = 0。所以此时x被重新赋值为0。打印出来当然就为0。
    printf("%d\n", x);
    return 0;
}
调试图片:


发表于 2022-02-21 15:02:22 回复(0)
== 优先级高于 =  所以先判断 == c语言中0为假 其它为真  y不等于z ,所以x等于0,答案应该是a
发表于 2021-09-16 18:26:07 回复(0)
Java编译报错
C编译结果是0
发表于 2020-08-22 21:39:37 回复(0)
==优先于=,y的值不等于z所以返回0,0再赋值给x,x的值是0
发表于 2023-01-01 11:19:53 回复(0)
这道题能编译?????
发表于 2018-03-29 16:04:11 回复(0)
关系运算符==的优先级要高于=
发表于 2023-06-02 18:45:59 回复(0)
==优先于=,y的值不等于z返回0,0再赋值给想,所以为0
发表于 2022-10-04 16:50:48 回复(0)
==是判断返回0
发表于 2021-08-04 21:58:29 回复(0)
c中双引号查找文件的范围比尖号查找范围大,尖括号只找标准头文件目录里的头文件
发表于 2021-05-12 09:30:06 回复(0)
注意,#include "stdio.h"运行的C而不是C++,在C中没有Boolean量,false的值为0,故y == z的结果为0,然后赋值给x
发表于 2019-04-23 15:40:16 回复(0)
y == z是false,就是0,0再赋值给x,可以去运行试试。
发表于 2019-03-15 17:25:02 回复(0)