已知int x=1, y=2, z=3;,则逻辑表达式x<y||++z运算后,z的值是?
发布网友
发布时间:2022-05-24 12:12
我来回答
共4个回答
热心网友
时间:2023-10-12 21:48
【分析】
z+=x>y?++x:++y
该表达式执行分为两个过程:
1).
x>y?++x:++y
这个表达式的运算符为
a?b:c,即根据逻辑表达式a的真假情况返回表达式b或c.
若a为真(即a运算结果非0),则返回表达式c;若为0,则返回表达式c.
因此x>y++x:++y的意思是判断x>y的真假,若为真,则返回表达式++x,若为假,则返回++y.
2).
执行z+=
【执行过程】
表达式z+=x>y?++x:++y等价于z=z+(x>y?++x:++y).变量赋值后即为z=3+(1>2?++1:++2),
1)由于1>2为假(即表达式结果为0),因此返回表达式++y;
2)执行++y.++y是先对y变量执行自加,在返回自加后结果,即为3(即为(x>y?++x:++y)的结果).
3)执行z+=.将(x>y?++x:++y)结果带入,为z+=3
4)返回z为6
.
——————————————————————————————————
楼主,这些都是c的基本运算,要扎实c功底啊
热心网友
时间:2023-10-12 21:49
结果z=3;
因为运算符||的运算机制,如果前一个条件为真,后一个条件就不运算了,所以由于x<y为真,所以++z没有运算,逻辑表达式x<y||++z就为真。所以最后z的值仍为3
热心网友
时间:2023-10-12 21:50
||是逻辑或,就是A||B,A和B里面有一个是真的就是真的
C里只要不是0就是真,0就是假
这题x<y,真已经是真了,就不走后面的了真||真(假)都是真
;
所以x<y||++z是1,z还是3哈
热心网友
时间:2023-10-12 21:50
z=3
逻辑表达式为或语句
当x<y为真时,语句值为真,不再执行++z运算
只有当x>=y时才会执行++z运算,即此时判断z是否等于-1。
(++z表示z值增加1以后再进行运算,即z=z+1)