C语言问题

设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为()A.1B.2C.3D.4... 设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后,n的值为( )
A. 1 B.2 C. 3 D. 4
展开
 我来答
敖尘
2007-07-28
知道答主
回答量:24
采纳率:0%
帮助的人:7.2万
展开全部
逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。
符号 功能
&& 逻辑与
|| 逻辑或
! 逻辑非
例如:
5!3;
0||-2&&5;
!4;

当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如:
a=2,b=1;
a||b-1;
因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
因此表达式(m=a>b)&&(n=c>d)只运算m=a>b部分,n的值没有改变,所以n=2.

参考资料: http://club.it.sohu.com/read_elite.php?b=program&a=117672

月近星远
2007-07-26
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
应该选B
是2
因为&&运算符是从左向右运算的
当&&左边的为假(值为零)时就不再运算&&右边的算式了
(m=a<b)&&(n=c>d)这样改后就是0了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ddwl99
2007-07-28 · TA获得超过2924个赞
知道小有建树答主
回答量:739
采纳率:0%
帮助的人:269万
展开全部
选B
二楼说的对,顺便补充一点就是
如果左边是对的的话,那么N=1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sweetdust2
2007-07-28
知道答主
回答量:32
采纳率:0%
帮助的人:46.7万
展开全部
其实很简单阿你看,
&&的结合性是由左向右;
=的结合性是由右向左;
()的结合性在这里是最高;
那么先执行m=a>b,但发现其真值为假,那么与运算的右半部分就不会再执行,n就没有被重新赴值,所以n=2

你还可以用排除法的阿如果你不太会的话,n无非0或2,没有0,只能选B

当然你还可以把这个小程序输入TC进行验证,哈哈,应该没错了,不然我的C语言白学了~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QI貴人
2007-07-28 · TA获得超过216个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:0
展开全部
c
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式