C语言 设有语句int a=4;则执行了语句a+=a-=a*a后,变量a的值是多少?

RT
标题打的有点不清楚
a+=a-=a*a

答案:-24

1、a = 4,先算a * a,表达式的值为16。
2、+和-同一优先级,因为是复合赋值运算结合性从右向左进行,所以此时算
a -= 16 (a *a 表达式的值是16)
相当于
a = a - 16;
此时a=-12
3、最后算:
a+ = -12(a-=a*a表达式的值是-12)。
相当于
a = a + (-12);
因为a = -12,所以最后的值是-24。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-16
又来讨论这类没有意义的语句.告诉你,这样地写语句在标准C中是没有定义的.
虽然在编译器能得出结果,但是由于标准C没有明确定义,那么编译器可根据自己来作出一个规则.所以不同编译器会得出不同的结果.
请你看我回答别人的一个问题就知道了.

参考资料:http://zhidao.baidu.com/question/184307242.html

第2个回答  2010-09-16
等于号是从右向左计算的……
不过,谁这么蛋疼,用这种表达式?本回答被提问者采纳

C语言 设有语句int a=4;则执行了语句a+=a-=a*a后,变量a的值是多少?
答案:-24 1、a = 4,先算a * a,表达式的值为16。2、+和-同一优先级,因为是复合赋值运算结合性从右向左进行,所以此时算 a -= 16 (a *a 表达式的值是16)相当于 a = a - 16;此时a=-12 3、最后算:a+ = -12(a-=a*a表达式的值是-12)。相当于 a = a + (-12);因为a...

设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( ) A) 3...
选项为D。解析:根据算术运算符的优先级,应该是先算乘法,即a*a=3*3=9,于是该式子变为a+=a-=9,注意此时a值依然为3。再根据从右向左的运算顺序,将将上式一分为二:a+= | a-=9,先计算右一项,a=a-9=3-9=-6。这样,a的值变成了-6,再计算左半部分a=a+(-6)=-6+(-6)=-...

设有代码“int a=3;”,则执行了语句“a+=a-= a*a;”后,变量a的值是...
【答案】:D 由于赋值运算符的结合性自右至左,语句“a+=a-=a*a;”的执行是先计算a*a,得到值9,再计算a-=a*a,使a的值为-6,接着计算a+=a,使a的值为-12。所以解答是D。

设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值为?
a+=a等价于a=a+a,a=-12 所以变量a的值是-12

设有语句int a=3,执行语句a+=a-=a*a后,变量a的值是多少啊?
执行该语句的结果为-12,没有错误。注意赋值运算符的顺序为自右到左。计算过程如下:首先执行a*a=9,然后a-=9=(a=a-9)=-6,执行后a=-6,然后执行a+=a=(a=a+a)=-12。所以说正确答案是-12。

设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a的值是?
先计算a*a的值为9,然后,a-=a*a就是a=a-a*a的a的值为-6,然后a+=(-6),就是-12,最后答案就是-12

设有语句int a=3; 则执行了语句a-=a+=a*a;后,变量a的值是( )
设有语句int a=3;则执行了语句a-=a+=a*a;后,变量a的值是-12。先算a*a=9 再算a-=9 这样a=-6 再算a+=-6 就是a=-6-6=-12 任何一个表达式的最后加一个分号都可以成为一个语句。一个语句必须在最后出现分号。表达式能构成语句是C和C++语言的一个重要特色。C++程序中大多数语句是...

c++求答案
(一) 若x,y,i,j均为int型变量,则表达式x=(y=1,i=3,j=8)的值是 1 。(二) 设有char a[]={‘a’,’b’,’c’,’d’,’\\0’,’e’,’\\0’},cout<<a,输出的结果是 2 。(三) 执行语句 int a=4;a+=a-=a*a;则a的值为__3___。(四) 已知struct student{ int num; char name...

为什么a+=a-=a*a运算后a的值变为负数?
执行完表达式a+=a-=a*a后,a的值为:-12。表达式执行的过程:首先明白赋值运算符的结合性为自左向右,所以说先执行最右边的表达式,同时乘除运算符的优先级大于赋值运算符,所以说先执行a*a,因为a=3,所以说a*a=9,然后执行a-=(a*a)=a-=(9)等价于a=a-(a*a)=3-9=-6。然后a=...

C语言中设int a=4,则执行完语句a+=a-=2后的值是?
4 根据运算符优先级及赋值语句的顺序先执行 a-=2 即a=2, 再执行a+=2 结果 为4

相似回答