c语言简单问题:若 x=1,y=2,z=3.则表达式 z+=++x+y++的值为多少?求详解

如题所述

++x返回值是+1之后的值

x++返回时+1之前的值

所以z=3+(1+1)+2=7

#include <stdio.h>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
 int x=1;
 int y=2;
 int z=3;
 z+=++x+y++;
 cout<<z<<endl;
 return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-21
考的是++的计算顺序问题:
求z+=++x+y++
即求:z=z+(++x+y++)
++放变量前面,先变量做++,然后使用变量。++放变量后面,先使用变量,然后再变量++
所以括号里面的执行顺序是先++x,x=2.然后做x+y=4,然后求z=z+(x+y)=7,最后做y++,y=3.
所以计算结果为:
x=2;y=3;z=7
第2个回答  2013-08-21
自己看看运算符优先级
++ > + > +=
再理解 ++y和y++的区别
前++是在先+1再使用
后++是先使用再+1

所以 ++x 就是 2
y++ 计算是用的值是2,之后y会+1 为3
所以想当于 3 += 2+2
结果就是7
第3个回答  2013-08-21

++x 代表的是x+1之前的值 也就是 1(但x已经加1)

y++ 代表的是y+1之后的值 也就是 2+1 = 3

所以原式代表的是 z = z + (++x) + (y++) = 3 + 1 + 3 = 7


第4个回答  2013-08-21
恩!答案是7
++x 是x加1之后的数值
y++是y加1之前的数值
z+ = 是z 加=号之后的数值再把这个值赋值给z
所以就这道题来说!
z = 7最后

c语言简单问题:若 x=1,y=2,z=3.则表达式 z+=++x+y++的值为多少?求详解...
++x返回值是+1之后的值 x++返回时+1之前的值 所以z=3+(1+1)+2=7 include <stdio.h>#include<cstring>#include<iostream>using namespace std;int main(){ int x=1; int y=2; int z=3; z+=++x+y++; cout<<z<<endl; return 0;} ...

若x=1,y=2,z=3,则表达式z+=++x+y++值,并解释。
++,--是单目运算符的优先级是2;++x表示在使用x之前,先使x的值加一;x++表示在使用x之后,使x的值加一;赋值运算符的优先级是14;“+=”是复合的赋值运算符 例如a+=3等价于a=a+3;凡是二目运算符,都可以与赋值符一起组合成复合赋值符。C语言规定可以使用10种复合赋值运算符。即:+=,—...

C语言中 int x=1,y=2,z=3;则z+=x>y?++x:++y 的值为多少?为什么? 求大...
答案应该是6.因为先进行x>y?这个判断,而x>y为假,所以z+=++y,++y的值是3,所以z+=3,本来z=3,所以z的值为6

若x=1,y=2,z=3,则表达式z+=++x+y++值,
z+=++x+y++相当于z=z+(++x+y++) =3+2+2=7

int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是?
若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...

设int型变量x = 1 , y = 2 , z = 3,则表达式 y+=z--\/x++ 的值是
是3 表达式为y=y+z--\/++x 先计算z--为3,在计算++x为2,然后计算z--\/++x 这时候z--值为2,所以z--\/++x为1,再加y,最终结果是3

...x = 1 , y = 2 , z = 3,则表达式 y+=z--\/++x 的值是多少?(注:题上...
1.这么复杂的表达式,适合在C语言中出现 2.如果在java中出现,考虑的一般就是int double(转型问题),简单的就行了,需要自增有自检么?直接 y += z \/ x 就得了呗...3.可怜的孩子们,都被这种绕来绕去的题目 转蒙了.需要考虑的类型无外乎 int double (short, long ,float 不用考虑,这两个足...

2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--\/++x 的值是(
1.z--等于3;2.++x 等于2;3.z--\/++x 等于3\/2,结果为1;4.y+=1,结果为y=2+1=3。基本的优先级需要记住:指针最优,单目运算优于双目运算。如正负号。先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.逻辑运算最后结合...

C语言问题:float x=1; int y=2; y+=++x*++x; Y的值是多少?
1.++x或者x++结果都为2;2.a=x++,b=++x,a的结果为1,b的结果为2;3.前缀(++x)先x+1,再参加其他运算,后缀(x++)先参加其他运算,再x+1,每次运算后,x都会保存其最新的值;4.a=2+x++,先计算a=2+x=3,再计算x++,x结果为2;y+=运算,等价于y=y+ 所以运算结果为,y=...

c语言中,若x=3,y=2,z=1,则表达式z+=(X<Y?x++;y++)的值是
分号打错了,应该是冒号!X<Y ? x++ : y++ 意思是如果x<y,则执行x++,否则执行y++;例子中x>y,所以表达式相当于 z+=y++;y++值为2,所以相当于z+=2 z初值为1,计算后z=3

相似回答