设int a=12,则执行完语句a+=a-=a*a后,a的值是()

详细解答,答案是-264,我弄不清楚了

-264。

1、先计算a-=a*a,得到a=12-12*12=-132;

2、a+=-132,得到a=-132-132=-264。

+= 加后赋值,变量+=表达式 如:a+=3;即a=a+3;-= 减后赋值,变量-=表达式 如:a-=3;即a=a-3。

赋值运算符的计算顺序是从右到左,大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。而且它的优先级别低于其他的运算符,所以对该运算符往往最后读取。

扩展资料:

优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号。

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.

逻辑运算最后结合。

参考资料:

百度百科-赋值运算符

百度百科-运算符优先级

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-25
a后来的值是负132。
这是一个赋值表达式,要从右向左做,也就是你要先从右边的赋值表达式开始做,注意在做的同时,变量a的值也在变。
在这个式(a+=a-=a*a)中要先做a-=a*a(这个式等价于a=a-a*a ,算一下a就等于-132了),
然后再算a+=a(注意a这时=-132)即a=a+a=-264
所以结果为-264
第2个回答  推荐于2017-11-27
giggle.
a+=a-=a*a
<=>
a+=a-=144
a+=12-144=-132
a=-132+(-132)=-264
我想这其中你的不解之处就是忽略了变量a值的变化12-> -132 -> -264本回答被提问者采纳
第3个回答  2009-03-24
就是上面说得那种,赋值运算自右至左,首先算最右面的,a*a=144,然后算中间a=a-144=-132,最后再算到a=a+a=-264,其实就是一步一步的算,不要急,耐下心来就没问题了,还有就是要搞清运算顺序…
第4个回答  2009-03-24
先计算a*a=144
然后 a=a-144=-132(此时a=-132)
最后a=a+(-132)=-132+(-132)=-264

设int a=12,则执行完语句a+=a-=a*a后,a的值是()
-264。1、先计算a-=a*a,得到a=12-12*12=-132;2、a+=-132,得到a=-132-132=-264。+= 加后赋值,变量+=表达式 如:a+=3;即a=a+3;-= 减后赋值,变量-=表达式 如:a-=3;即a=a-3。赋值运算符的计算顺序是从右到左,大多数运算符结合性是从左到右,只有三个优先级是从右至...

设int a=12,则执行完语句a+=a-=a*a后,a的值是
D。拆开来看,a=a+(a-=a*a),在拆 a=a+(a=a-a*a) 从后面算。先算 a=a-a*a 等于-132,算 a=a+(-132) 结果是D。例如:先执行a*a=144 然后a=a-144 此时a=-132 再执行a=a+(-132)a=-264

...a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。 A. 12 B. 144...
a = a + a * a a = a + 12 * 12 到这里a 的值尚未改变 所以最后a = 12 + 12 * 12 = 156 相信我,错不了

设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。
a+=a*a 等同于 a=a+a*a;

菜鸟求助 C语言题目:设a=12,求表达式a+=a-=a*=a的值与a+=a-=144有...
=是右结合的,a初值是12,执行a+=a-=a*=a;时是这样来执行的:a*=a;\/\/a值为144 a-=a; \/\/a值为0 a+=a; \/\/a值为0 运行完后a的值为0。如果再运行,则:a-=144; \/\/a的值为-144 a+=a; \/\/a的值为-288 即运行完结果是-288 若a+=a-=144;语句是在a初值为12的条...

求一些c编程题
44、设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 A) 552 B) 264 C) 144 D) -264、D、1 45、设 int b=2;表达式(b>>2)\/(b>>1)的值是 A) 0 B) 2 C) 4 D) 8、A、1 46、设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是___ A)'a'&&'b' ...

为什么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=...

设有语句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++程序中大多数语句是...

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

相似回答