gpt4 book ai didi

CLA 认证考试中 C 运算符(operator)优先

转载 作者:行者123 更新时间:2023-11-30 20:32:36 28 4
gpt4 key购买 nike

目前,我正在 cppinstitute.org 学习 C 语言认证类(class)。在其中一个测验中,有一个如下的问题来识别输出。

int i = 1,j= 1;
int w1,w2;
w1 = (i>0) && (j<0) || (i<0) &&(j>0);
w2 = (i<=0) || (j>=0) && (i>=0) || (j<=0);
printf("%d",w1 == w2);

我认为程序应该在屏幕上打印 0,但测验接受打印 1 作为答案。

我说得对吗?如果不对,我错在哪里?预先感谢!我是初学者。

最佳答案

此处,&& 的优先级高于 || 运算符。

所以,

w1 = (i>0) && (j<0) || (i<0) &&(j>0);   
= 1 && 0 || 0 && 1;
= 0 || 0
= 0

还有

w2 = (i<=0) || (j>=0) && (i>=0) || (j<=0);
= 0 || 1 && 1 || 0
= 0 || 1 || 0
= 1 || 0
= 1

因此,w1 == w2 变为 false。所以,正确的输出是0。

关于CLA 认证考试中 C 运算符(operator)优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47244698/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com