谁帮我解释一下这道题?

例2】(2000年4月)设intx=1,y=1;表达式(!x||y--)的值是()。A.0B.1C.2D.-1【答案】B... 例2】(2000年4月) 设 int x=1,y=1; 表达式(!x||y--)的值是( )。
A. 0 B. 1 C. 2 D. -1
【答案】B
展开
 我来答
岚洌
2010-07-20 · TA获得超过9891个赞
知道大有可为答主
回答量:1590
采纳率:0%
帮助的人:3260万
展开全部
C++中的常用运算符中,逻辑运算符&和||的优先级是仅高于?:和各种赋值符号的(=,+=,-=...)
这一点,是大部分考优先级的题目的主要考察点。可以说,记住这一点,大部分优先级的题目都可以轻易判断了。
在这个题目中,由于||优先级最低,最后计算。这样,先进行y--(y--的优先级要高于!这一点要注意,这也是前面几楼的网友犯的错误),还要要记住一点,y在前的时候,是先引用y的值,再进行自减,所以y--的值是1(如果--y则是0)。再进行!x的计算,也就是0.最后计算两个表达式的"或"的结果,也就是1或0,结果为1.
这里是我总结的C++中各种运算符的顺序,重点记住!和逻辑运算符&和||的顺序。对于优先级的掌握,做题是最有效的。
1.最高级是各种括号变量后面的++,--
还有Class中变量赋值的的时候用到的::
用于类或者struct中成员的调用的.和->符号
2.其次高的运算符就是题目中出现的 !(非)
变量前面的++,--
正负号+,-
以及取址运算符&(注意不是逻辑运算符&)和取值运算符*
3.乘除法和取余:*,/,%
4.加减法。+,-
5.<<和>>
6.比较运算符。>,<,>=,<=
7.比较运算符里面的相等和不等于 ==,!=
8.逻辑运算符&,||
9.If Then的?:
10.=,+=,-=,*=,/= 此类的赋值运算。
闲丶wy
2010-07-20 · TA获得超过175个赞
知道小有建树答主
回答量:366
采纳率:83%
帮助的人:71.2万
展开全部
B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小葱花wwtao
2010-07-20 · TA获得超过1982个赞
知道小有建树答主
回答量:771
采纳率:0%
帮助的人:628万
展开全部
考点:表达式优先级

!优先级高于||,所以表达式可以写成
(!x)||y--
=0||1
=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e7d13b2
2010-07-20 · TA获得超过469个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:122万
展开全部
(!x||y--)是个判断表达式 返回值只有2个 真和假(1和0)

符号 ! 表示 非 。通常理解就是反义
x=1 取非 就变成了0 所以返回值为 0

y-- 后减减就是先运算 再自减 所以y先返回 1 再自减为0

|| 是或的意思 就是说值要有一个条件满足 最后的返回值就为真(1)

所以 表达式 (!x||y--) 就等于 (0||1)

最后的返回值就为真(1)

所以答案就是 B
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式