设int a=12,则执行完语句a+=a-=a*a后,a的值是_____(
+=和-=的优先级是一样的,是从右到左关联的,计算过程:
a+=a-=144
a+=12-144=-132
a=-132+(-132)=-264
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+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
参考资料来源:百度百科-运算符优先级
-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.
逻辑运算最后结合。
参考资料:
百度百科-赋值运算符
百度百科-运算符优先级
-264;
先执行a*a=144;
然后a=a-144;
此时a=-132;
再执行a=a+(-132);
a=-264
(以上为gcc编译结果)
我测试了在java中结果不是这样的,这个与具体底层实现是有关系的,有些编译器执行的时候a的值一直是12;有些就在运行过程中修改了
结果为:-120
把以下代码保存为html文件,双击运行即可知道!
<script>
var a=12;
alert(a+=a-=a*a)
</script>
int a=12
故
a-=144,得a=0
a+=0
a=0
144
肥栋科林:[答案] 做这种题要清楚运算符的优先级,这道题从右到左运算,*先算,a*a=144,再算a=a-144,得出 -132,再算a=a+a,得出-264
临朐县18717497668: 、设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( ). - ?
肥栋科林:[选项] A. 12 B. 144 C. 156 D. 288
临朐县18717497668: 设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+b && b*c...
临朐县18717497668: c++题目 ” 设 int a=12;,则执行完语句“a+=a*a;“后,a的值是? 求解答方法 - ?
肥栋科林: a+=a*a 就是a= a+a*a = 12+12*12 = 12+144=156
临朐县18717497668: 设int a=12,执行完a+=a - =a*a后,a的值是 - ?
肥栋科林: 因为等于是从右往左计算的,先计算右边的等号,即先计算: a-=a*a 这个等式表示 a =a - a*a a = -132, 等式的值也是-132,即第二个等式是: a+=-132 这个等式表示 a = a + (-132) 把a的值代入,a = -264
临朐县18717497668: C语言 设有 int a=12; 执行完语句 a+=a - =a*a; 后,a的值是( ). - ?
肥栋科林: -264 从右向左计算.
临朐县18717497668: 1.设“int a=12;”,则执行完语句“a+=10”后,a 的值是: 2.C语言源程序的基本单位是: 3. 函数sqrt()的 - ?
肥栋科林: 1.int a=12; a+=10; 之后 a=22;2.函数3.sqrt()求方根,需要math.h 头文件
临朐县18717497668: a为整数变量,初值为12,执行完语句a+=a - =a*a后,a的值? - ?
肥栋科林: -264 这个式子是从右向左结合的,先执行a-=a*a,得到a=-132,然后执行a+=-132得到a=-264