int x=2,y=3,z=4;则表达式x||y+z的值为1。||的意思是什么

作者&投稿:检翠 (若有异议请与网页底部的电邮联系)
已有定义:int x=3,y=4,z=5 则表达式!(x+y)+z-1&&y+z/2的值是,这个怎样求,想要具体的求解过程。~

!(x+y)+z-1&&y+z/2
=!(3+4)+5-1&&4+5/2
=!7+5-1&&4+5/2
=0+4&&4+5/2
=4&&6
=1
运算符的优先级:
()最高,下来是!下来是+,-,*,/,最后是&&
逻辑与在左边右边只要有一个0的时候结果就为0
4和6都不为0,所以结果为1

这里涉及到的运算符: ! () + - && /
优先级:() ! / + - &&

x=3,y=4,z=5
!(x+y)+z-1&&y+z/2

!(3+4)+5-1&&4+5/2

所以表达式计算步骤为
!(3+4)+5-1&&4+5/2 -> !7+5-1&&4+5/2

!7为 0
-> 0+5-1&&4+5/2
5/2 整数除整数得整数 2
-> 0+5-1&&4+2
-> 4&&6
逻辑运算 &&

所以是1

C++ 运算符优先级列表 (很详细的): http://www.cppblog.com/aqazero/archive/2006/06/08/8284.html

逻辑运算符 逻辑或 非0即为真 即运算结果只能是1(真)或者0(假) 在参与运算的两个数据中只要有一个不为0,即结果就是1

逻辑关系。。。或


惠山区13333911855: int x=2,y=3,z=4; 则表达式x+y&&(x=y)的值为_____.【参考答案】 1 为什么? -
郎岸核黄:[答案] 表达式x+y&&(x=y)等价于(x+y)&& (x=y),x+y=5,x=y是将y赋给x,故x=3.5 && 3 = 1 注意两点:1、运算优先级 2、x=y 与 x==y的区别,前者为赋值表达式,后者为逻辑表达式

惠山区13333911855: int x=2 y=3 z=4; 则表达式X││Y+Z的值为 -
郎岸核黄: 因为+的优先级高于||则,先运行y+z得4+3=7 然后再是x||7...因为x和7都不为0所以都为真则最后结果为1

惠山区13333911855: int x=2,y=3,z=4;则表达式x||y+z的值为1.||的意思是什么 -
郎岸核黄: 逻辑运算符 逻辑或 非0即为真 即运算结果只能是1(真)或者0(假) 在参与运算的两个数据中只要有一个不为0,即结果就是1

惠山区13333911855: int x=2,y=3,z=4;则表达式!x+y>z的值为? -
郎岸核黄: 0 因为!的优先级高,所以先算!x,在计算(!x)+y,又因为!x的值为零,所以!x+y>z不成立.所以取0.#include"stdio.h" main() { int x=2,y=3,z=4; printf("%d\n",(!x+y>z)); return 0; } 这是源码,你可以试试,望采纳.....

惠山区13333911855: c 语言 int x=2,y=3,z=4;则表达式x||y+z的值为? -
郎岸核黄: 这个应该是考试题,应该不会上机调试,最好的方法,应该是掌握住方法.而不是上机.x=2.为真,(在c++中非0 即为真,这个相当重要) y+z=7 为真.因为||是逻辑或 两个同时为真.故 值为真.不知道你不否明白,如果不明白.可以加我好友.继续探讨

惠山区13333911855: int x=2,y=3,z=4; 则表达式x+(y>!z)的值为【1】. -
郎岸核黄: 事情是这样的.z 不为 0,所以!z为布尔值false,转化成int就是0 y > 0,显然为布尔值true,转化成int就是1 x + 1 就是3.注意中间有一系列隐式类型转换

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网