C语言: int x=5, y=7, z; z=x>y?5>3?++x+y:x:++x-y++ 则z的值为...

发布网友 发布时间:2024-10-24 17:21

我来回答

5个回答

热心网友 时间:1分钟前

int x=5,y=7,z;//x=5,y=7,z=?
z=x>y?5>3?++x+y:x:++x-y++;//此句分解为下面语句
if(x>y)//此条件不成立直接else
{
    if(5>3)
    {
      z=++x+y;
    }
    else
    {
        z=x;
    }
}
else//运行此句 
{
    z=++x-y++;
 }

上述问题转化为z=++x-y++;
++x的值为x+1
y++的值为y
则问题转化为z=(x+1)-y=6-7=-1

结果为-1

热心网友 时间:3分钟前

难道是-1
z=x>y?(5>3? x y:x): x-y ;
判断x>y为假执行后面
先x自加1也就是6-7
?:三元运算符

热心网友 时间:1分钟前

设计到逗号运算符。
先计算x--,x=5了
再计算y++,y=8了
再计算x+y,也就是5+8=13
所以(x--,y++,x+y)的结果为13

热心网友 时间:9分钟前

z=x>y?5>3?++x+y:x:++x-y++ ;
用if-else 表示为
if(x>y){
if(5>3)z=++x+y;
}else{
z=x;
}
}else{
z=++x-y++;//由条件可知执行这一句,其它全部跳过;
}
++x-y++首先对x进行递增运算 使x==6
然后运算 x-y 结果为-1 再运行 y++使 y==8
然后将结果 -1赋值给 z;

热心网友 时间:2分钟前

z=-1;

这个式子嵌套使用了条件选择语句
因为x>y是错的 所以z=++x-y++;了
z=++x-y--等同于 x=x+1;z=x-y;y++;
++x表示先让x自增1在去运算 儿x++的话是先让x拿去运算 在自增1
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com