设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是

A.(!a==1)&&(!b==0)B.(a<b)&&!c||1C.a&&bD.a||(b+b)&&(c-a)<b表示看不懂选项的说,求解释~~~~~~~~~~~... A.(!a==1)&&(!b==0) B.(a<b)&&!c||1
C.a&&b D.a||(b+b)&&(c-a)<b
表示看不懂选项的说,求解释~~~~~~~~~~~
展开
 我来答
baby凯旋城住户
2018-02-27
知道答主
回答量:38
采纳率:90%
帮助的人:8.8万
展开全部

通过下面这个程序,运行结果显示 A 的值为0:

#include<stdio.h>

int main(){

int a=2,b=3,c=4;

printf("%d",(!a==1)&&(!b==0));

printf("%d",(a<b)&& !c||1);

printf("%d",a&&b);

printf("%d",a||(b+b)&&(c-a)<b);

return 0;

}

根据C语言运算符的优先级和结合性,具体解释 A:

首先,括号的优先级最大,其次才是 && ,所以先计算两个括号中的值。

其次,两个括号中, ! 的优先级比==大,所以,左括号中先计算!a,因为 a=2,值为真,非真就是假,也就是说,!a=0;括号里的式子有变成了 0==1,不成立,所以整个左括号值为假,也就是0.

分析到这,其实就应该结束,因为做的是与运算,左边为假,整个式子就都是假。

选项 B、C、D判断的依据运算符的优先级和结合性来判断

水撒了一地
2013-12-10 · TA获得超过305个赞
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:186万
展开全部
A.(!a==1)&&(!b==0)>>>>>>!非零等于0;0&&……为零;。。所以选A;
B.【(a<b)&&!c】||1>>>>……||1;。。一定为1;
C.a&&b>>>>>非零&&非零。。。为1;
D.【a||(b+b)&&(c-a)】<b>>>>>>a非零||……为1;1小于b;。。所以结果还是为1;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
物理公司的
推荐于2018-02-27 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1367万
展开全部
A.(!a==1)&&(!b==0)>>>>>>!非零等于0;0&&……为零;。。所以选A;
B.【(a<b)&&!c】||1>>>>……||1;。。一定为1;
C.a&&b>>>>>非零&&非零。。。为1;
D.【a||(b+b)&&(c-a)】<b>>>>>>a非零||……为1;1小于b;。。所以结果还是为1;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式