C++ int a=3 ,m; 执行" m=a<=3 && a+b<8” 会怎样?完整题目见下

设有说明语句“inta=3,b=5,m;”,执行表达式“m=a<=3&&a+b<8”后,m的值为(C)。(2分)A.2B.3C.0D.1请分析这句:m=a<=3&&a+b... 设有说明语句“int a=3,b=5,m;” ,执行表达式“m=a<=3 && a+b<8” 后,m的值为(C )。(2分)A.2 B. 3 C.0 D. 1
请分析这句:m=a<=3 && a+b<8
展开
 我来答
河海大学一心楼
推荐于2018-04-13 · 超过14用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:26.6万
展开全部
答案是C
逻辑运算符的优先级高于赋值运算符,所以m=a<=3 && a+b<8等效于
m=(a<=3 && a+b<8);

逻辑表达式会采用截断算法,首先比较a<=3 结果是1; 其次比较a+b<8,结果是0;
逻辑表达式 1 && 0 结果是0,因此m=0
匿名用户
2014-01-06
展开全部
这里面赋值运算符最低,所以先对m 右边的表达式求值 m="a<=3 && a+b<8" , 再对&&左边的求值,a<=3成立,非零,继续对&&右边的求值, a+b不小于8,所以为0,&&只要左右边有一个为0,则结果为0,所以 m=0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-06
展开全部
这里其实就是一个简单的运算符优先级的问题,在这个表达式中看清楚 ‘=’即赋值运算符的优先级是最低的,所以最后才执行赋值运算。然后剩下的运算符优先级依次是‘+’>‘<’= '<=' >‘&&’。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ytm_es
2014-01-06
知道答主
回答量:24
采纳率:0%
帮助的人:13万
展开全部
m = ((a<=3) && ((a+b)<8))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式