北京世联机械厂:有关C语言的问题的

来源:百度文库 编辑:神马品牌网 时间:2024/05/08 04:08:36
Main()
{ int a=4,b=5,c=0,d;
d=!a && !b || !c;
printf(“%d\n”,d);
}
(A)1 (B)0
(C)非0的数 (D)-1
d=!a && !b || !c;这句是什么意思呀谁知道呀尽量说得明白详细点呀先谢了

because: a=4,4 not equal to 0
then : !a=0
so: !b=0 as well
See: c=0
then: !c=1
so we conclude that !a&&!b=0
further: !a&&!b||!c=1
That: d=1

d=(!a )&& (!b )|| (!c)=(!4)&&(!5)||(!0)=0&&0||1=0||1=1;

按照优先级先算!a、!b和!c,非0的变0,0变1
然后再是&&运算符,此时!a=0,!b=0所以&&(与运算)后还是0,然后和!c=1做||(或运算),那么d=1

先判断a=!a 是不是为真,和!b || !c是不是为真, 因为, “非” 的等级比 “或”和“与”高,

最后把它们两的值相与