a+=a-=a* a其中a=3
问题描述:
下午5:01
第二章作业
12.单选题
若有:inta=3;执行表达式:a+=a-=a*
a后,a的值是()。
3
B 9
-12
D 6
12/30
<上一题 下一题>
答题卡
答
【答案】 a = -12
【解析】:
运算符优先级,赋值运算符的优先级 从右到左计算
a - = a*a → a = a - a*a = 3 - 3*3 = -6
a +=a = a+a = -6 -6 = -12
#include<stdio.h>
int main(void) {
int a = 3;
a +=a-=a*a;
printf("a=%d",a);
return 0;
}
答
这题考察的是运算符的优先级和结合方向
int a = 3;
a += a -= a*a;
本题中运算符的优先级从大到小是:* -= ( += ) //()代表优先级一样
结合方向都是从右到左。
所以说执行顺序是: a += a -= a * a----> a += a = a - a * a --> a += a = -6 --->a =a +a =-12;
即从右边开始算就可以得出-12