C语言的计算题。

请写出步骤。好像结果是0?**x=2,y=-3,z=3,则表达式x||y+z&&y-z的值为()。... 请写出步骤。好像结果是0?
* *x=2,y=-3,z=3,则表达式x||y+z&&y-z的值为( )。
展开
 我来答
unld1
2013-06-08 · 超过18用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:46.7万
展开全部
你是在什么编译器下运行出0的结果的,应该是1才对啊。逻辑与运算符的优先级高于逻辑或,先进行逻辑与运算。由于算数运算符的优先级高于逻辑运算符,因此逻辑与运算符的两个操作数分别是y+z和y-z,整个表达式变为2 || 0 && y - z,注意这里y - z不会进行计算(因为逻辑与运算有短路的效果,你可以把y-z改为y++试试,看看y的值是否改变)。逻辑与运算的结果是0。再进行逻辑或运算,x不为0,所以结果为1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欢乐探索家
2013-06-08 · 超过14用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:26.4万
展开全部
结果是1 先看运算符的优先级 + 和-的优先级比||和&&高 所以先算y+z结果为0,再算y-z为-6
&&的优先级比||高 而y+z==0 所以逻辑与表达式的值为0。 而x=2;所以逻辑或表达式为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
肆笑红尘
2013-06-08
知道答主
回答量:11
采纳率:0%
帮助的人:10.1万
展开全部
这道题的运算符有:算术运算符、逻辑运算符其优先级别如下:
最高:算术运算符:+ - (+ - 优先级相同 先算)

次之:逻辑运算符:|| &&( || && 优先级相同 后算)

所以为:x || (y+z)&&(y-z)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xx_lyq00
2013-06-08 · TA获得超过4138个赞
知道大有可为答主
回答量:1794
采纳率:88%
帮助的人:789万
展开全部
这里主要是运算符优先级的问题。

逻辑运算符< (+-)运算符。
同时 || < &&

所以
x||y+z&&y-z = 2||0&&-6 =2||0=1

逻辑运算符结果只有0或1 。
a&&b 当a,b至少有一个为0时, =0 ,否则为1
a||b 当a,b全为0时, =0.否则为1.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杨星光05
2013-06-08 · 超过11用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:30.6万
展开全部
解:
因为x=2,y=-3,z=3
所以x||y=1;
z&&y=1
所以答案为-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式