c语言中 x||y+z&&y-z 的运算过程!一步一步的写出了,谢谢了。。

作者&投稿:笪差 (若有异议请与网页底部的电邮联系)
c语言 ++x||++y&&++z~

c语言中或运算符如果运算符前面的一项不为0则后面一项不执行,否则执行,与运算符如果前面一项为0则后面一项不执行,否则后面一项执行,也就是说当前面的一项的值能够决定这个表达式的值的时候后面的都不再执行,当前面的一项不能决定该表达式的值时,才需要继续执行后一项的值,你所写的程序执行过程如下:由于++x=1为真,则或运算的表达式为真,则其后的++y不执行,所以到此x=1,y=0;继续执行后面的与运算,由于前面的++x||++y表达式为真,不能够决定整个与运算表达式是否为1,则继续执行++z,所以有z=1,所以该表达式的值为1。。。。。。

先计算x的值是否大于y 再计算 z= (如果x>y为真则等于1否则等于0) 如果z为真 (等于1) 则整个表达式的值为x 否则为y
另外前面应该少了点什么 或者应该是这样
z=x>y?x:y 相当把x y中较大的那个赋给z (先算x>y 再赋值)
但是打了括号的话就只是一个表达式了=

按照优先级 先运算加减 再运行 &&逻辑与 最后运行 || 逻辑或
如果 y+z为非零 继续判断y-z是否非零 都非零时 y+z&&y-z 为真 不用判断x是否非零 整个表达式为真 1
如果 y+z 为0 不用判断 y-z是否为0 y+z&&y-z 为0 继续判断 x是否为0 x为0 整个表达式为0 x非0 整个表达式为真 1
如果 y+z非0 继续判断 y-z y-z为0 继续判断 x 后面同上

x 或者 y+z 而且y-z
&&运算优先级高先算 就是后面2个 y+z&&y-z看2个值是不是都是1也就是除非Y=1 Z=0时表达式为真出1 或运算已经有1 了那么x||y+z&&y-z就是1
如果是假的话就出0那么相当于在看x||0了=。=如果x=1那么出1 如果是0出0

结果就是除非y=1,z=0 或者x=1时那么 结果是1 其他都是0

其实具体的应该是这样。
x || y + z && y - z —>
x || y + (z && y ) - z —>
(x || y ) + ( z && y) - z —>
( (x || y) + ( z && y) ) -z

注意看括号的顺序。

先算出y+z然后再运算y-z。到x| | y+ z判断是否等于0,然后(x| |x+y )&&(y-z),判断是否等于0


云县17020885124: c语言中 x||y+z&&y - z 的运算过程!一步一步的写出了,谢谢了.. -
释拜缬沙: 按照优先级 先运算加减 再运行 &&逻辑与 最后运行 || 逻辑或 如果 y+z为非零 继续判断y-z是否非零 都非零时 y+z&&y-z 为真 不用判断x是否非零 整个表达式为真 1 如果 y+z 为0 不用判断 y-z是否为0 y+z&&y-z 为0 继续判断 x是否为0 x为0 整个表达式为0 x非0 整个表达式为真 1 如果 y+z非0 继续判断 y-z y-z为0 继续判断 x 后面同上

云县17020885124: x=2,y= - 3,z=3则表达式x||y+z&&y - z的值为 -
释拜缬沙:[答案] C语言吧? 算数运算的优先级高 由左到右,先(y+z)=0,x||(y+z)的结果为假,表达式变为假&&y-z 不用算了结果为假即0

云县17020885124: C语言的问题 x=2,y= - 3,z=3则表达式x||y+z&&y - z的值是多少?告诉我怎么算得,过 -
释拜缬沙: 猜测是非零值,代表布尔值“true” || && 优先级比较低,x || ((y+z) && (y - z)) x = 2, 则整个结果是true验证是1

云县17020885124: C语言的计算题. -
释拜缬沙: 这里主要是运算符优先级的问题. 逻辑运算符< (+-)运算符.同时 || < && 所以 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.

云县17020885124: x=2,y= - 3,z=3则表达式x||y+z&&y - z的值为 -
释拜缬沙: C语言吧? 算数运算的优先级高 由左到右,先(y+z)=0,x||(y+z)的结果为假,表达式变为假&&y-z 不用算了结果为假即0

云县17020885124: c语言中x*(y)+z和x*y+z 的区别 -
释拜缬沙: 这是宏替换的特点!宏替换是在编译时,将源程序中与宏定义符合的代码进行“傻瓜”式替换.如:#define MAX(x,y,z) x*(y)+z printf("%d/n", MAX(a+b.b+c,c+a) ); 在编译时替换成printf("%d/n", a+b*(b+c)+c+a ); 而#define MAX(x,y,z) x*y+z printf("%d/n", MAX(a+b.b+c,c+a) ); 在编译时替换成printf("%d/n", a+b*b+c+c+a ); 可见两个表达式在编译后的结果是不同的,因而结果不同!

云县17020885124: x&&y在c语言中什么意思 -
释拜缬沙: &&是逻辑与 x&&y当x与y都为真时,结果为真(1),否则为假(0)

云县17020885124: c语言中 ++x||++y&&++z 这个语句是什么意思啊??? 快来帮我啊 -
释拜缬沙: 1.x,y,z的值都增加1.2.然后x与y逻辑或,然后再逻辑与.

云县17020885124: c语言(x>=z && y<'z' || !y)的值是 -
释拜缬沙: 首先从c语言运算符优先级来看, && 高于||所以上面表达式相当于 ( (x>=2 && y<'z') || !y)) 就是((1 && 1) || 0) , 最后就是(1 || 0)=1

云县17020885124: 定义:int x=3,y=4,z=5;则表达式!(x+y)+z - 1&&y+z/2的值是 -
释拜缬沙: 这里涉及到的运算符: ! () + - && / 优先级:() ! / + - &&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 逻辑运算 &&所以是1C++ 运算符优先级列表 (很详细的): http://www.cppblog.com/aqazero/archive/2006/06/08/8284.html

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