设有定义: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
表示看不懂选项的说,求解释~~~~~~~~~~~ 展开
C.a&&b D.a||(b+b)&&(c-a)<b
表示看不懂选项的说,求解释~~~~~~~~~~~ 展开
3个回答
展开全部
通过下面这个程序,运行结果显示 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判断的依据运算符的优先级和结合性来判断
展开全部
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;
B.【(a<b)&&!c】||1>>>>……||1;。。一定为1;
C.a&&b>>>>>非零&&非零。。。为1;
D.【a||(b+b)&&(c-a)】<b>>>>>>a非零||……为1;1小于b;。。所以结果还是为1;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
B.【(a<b)&&!c】||1>>>>……||1;。。一定为1;
C.a&&b>>>>>非零&&非零。。。为1;
D.【a||(b+b)&&(c-a)】<b>>>>>>a非零||……为1;1小于b;。。所以结果还是为1;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询