一个二级C语言问题

原题如下:有语句:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()A1B2C3D4请赐教!为什么&&后面不执行了呢... 原题如下:
有语句: 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
请赐教!
为什么&&后面不执行了呢?
展开
 我来答
tianjie890000
2010-08-14 · TA获得超过1739个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:472万
展开全部
我来给你详细解答解答吧!
首先你要知道,关系表达式和逻辑表达式的值最后都只能是1或则0,不可能是其它值,比如c=a>b,如果a=3,b=2,那么这个关系表达式成立,那么结果它的值就是c=1,如果a=2,b=3,那么这个关系式不成立,那么它的值就是c=0。这里你就要知道,关系表达式的值只能是0或者1.
同样逻辑表达式有省略执行的特点,就是说如果执行前部分就能判断整个表达式的真假,那么后面的就省略执行力。你的(m=a>b)&&(n=c>d),前部分是m=a>b,后部分是n=c>d,根据从左向右的执行,前部分由于执行后等于m=0,即在逻辑表达中代表假,而逻辑符号&&必须是两边都为真才为真,只要有一方为假就是假,所以前面已经判断为假了,所以后面不再执行,所以后面的表达式不起作用,等于空,所以这里的n仍然等于2.

不知道这里楼主懂了不? 不懂可以问问哦
52_PT
2010-08-14 · TA获得超过171个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:126万
展开全部
c?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂平皖fe
2010-08-14 · 超过20用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:51万
展开全部
B,n=c>d如果被执行的话n=0,答案中没有0,所以没被执行,答案B
&&为前后两项都为真才为真,前面那项为假了,所以后面的就不执行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莹先勋7
2010-08-14 · TA获得超过236个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:113万
展开全部
B n=2
当执行(m=a>b)时,m为0为假,后面的就不要执行了咯,所以n的值不变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-08-14
展开全部
n = 2。因为a>b为0,所以m = a > b变为m = 0,m的值为0,&&右边不执行,所以n的值不变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6442016
2010-08-14
知道答主
回答量:29
采纳率:0%
帮助的人:15.8万
展开全部
&&是且运算一假则假,前面的假了后面不用判断就知道假了所以后面的就没执行!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式