有关C语言 一个很简单的问题,希望大神详细点!

inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=>d)后,n的值是多少?A1B2C3D0... int a=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:(m=a>b)&&(n=>d)后,n的值是多少?
A 1 B 2 C3 D 0
展开
 我来答
匿名用户
2013-11-07
展开全部
B 对于&&运算,若前者为0则能确定算式为0,后者将不做运算,所以n并没有赋值。
追问
a>b 不成立为0,那么M的值是否不再是初始化的值了,而是 a b一个?  简单说吧我很不理解(M=a>b)中= 和>怎么判断?
追答
单目>双目>三目运算>赋值。所以先算>
wosi歪歪
2013-11-07 · TA获得超过1851个赞
知道小有建树答主
回答量:841
采纳率:72%
帮助的人:380万
展开全部
n=2,
因为m=(a>b);
解释为:如果a大于b,那么m等于true(即1);否则m等于false(即0);
n=c>d也是这个意思.
再有(m=a>b)&&(n=c>d)首判断a>b是否为真,因为a=1,b=2.所以a>b为假。m=0,接着就不进行
n=c>d。故n的值未改变。估是因为&&的原因。

我是抄的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
823443337
2013-11-07
知道答主
回答量:28
采纳率:0%
帮助的人:23.5万
展开全部
答案是B,既然有了括号,就没有什么优先级的比较了,照着算就行了,前面一个表达式得出为false,可以理解为0,后面我是看不太清楚你这是什么表达式=>我是没见过,如楼上所说,前者为0则后则不做运算,也即其值不变
追问
那既然a>b不成立为0,是赋值给了M吗?那M不就为0了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毅仔不细啦
2013-11-07
知道答主
回答量:10
采纳率:0%
帮助的人:3.3万
展开全部
这属于短路表达式,(m=a>b)中a>b不成立,且有&&存在,即不再执行后面的计算,所以n的值没发生变化,n=2,假如(m=a>b)后面为||的话,结果就要执行(n=>d)后才能得到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-07
展开全部
都是正确答案 B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式