一道题关于计算机二级C语言

设a,b,c都是int型变量,且a=3,b=4,c=5,则以下表达式中值为0的是
A a&&b B a<=b C a||b+c&&b-c D !((a<b)&&!c||1)
要有过程啊!

这是逻辑运算符的问题,首先你得明白值为0是什么意思。四个答案其实都不是形成数值,而是逻辑关系。计算机中1代表是真,那么0代表的就是假。
&&(逻辑与),a&&b,因为ab都为真,所以a&&b为真,所以代表1;
a<=b,不学c语言都知道这句话是对的,所以也为1;
a||b+C&&b-c,不用在乎符号问题,按照优先级,是先运算逻辑符号,那么a||b c||b都真,这个时候千万不能按照数学思维去考虑,这个和数值几乎没关系了,所以不管执行什么+ - 运算都是可以的,结果无所谓,但是它是真的,那么C选项仍然是1;
很明显,答案是D,如果你能看懂上面的,就明白了。
!表示非,可以理解为反的意思,而逻辑运算符的优先级是相等的,那么运算开始是从左往右,得这么看,首先是(a<b)&&(!c)这样&&左边为真,右边为假,所有整体是假的。再 (假||1)所以为真,最后整体!(真),也就是假。所以答案为0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-06
答案为D ,非零整数(包括负数)都为真
A. a&&b :a,b都非0,都为真,故结果为真(即1)

B. a<=b :为真,即表达式值为1

C. a||b+c&&b-c :从左往右运算,加减运算优先级高 a||b+c为真,b-c非零为真,相与为真(即1)

D !((a<b)&&!c||1) :(a<b)为真,!c为假;那么(a<b)&&!c为假(即0);0||1为1,再非结果为0
第2个回答  2014-08-06
非零为真,a&&b就是真&&真,结果不是0;

a<=b就是3<=4 ,不是0
a||b+c&&b-c,优先级为 非>与>或,3||4+5&&4-5,由于减法运算符优先级较高,原式等价为3||4+5&&(4-5),为真

!((3<4)&&!5||1) 是0,!(1&&0||1)=!(0||1)=!1=0
第3个回答  2014-08-06
3&&4 不是0
3<=4 不是0
3||4+5&&4-5 不是0
!((3<4)&&!5||1) 是0 :因为&&运算符优先级高于||,但任何值与1做||运算都为1,所以最终的值为!1,即为0
第4个回答  2014-08-06
a<b为真
!c为假
(a<b)&&!c为假
(a<b)&&!c||1为真
!(a<b)&&!c||1为假,所以为零

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网