首页 > 试题广场 >

设有语句 int a=5; 则执行表达式a-=a+=a

[单选题]
设有语句
int a=5;
则执行表达式a-=a+=a*a后,a的值是?
  • -5
  • 25
  • 0
  • -20
推荐
C
int a=5;
a-=a+=a*a;
C语言中对赋值运算的运算顺序是自右向左。
①计算a*a之后,a的值依然为5,表达式a*a的值为25;
②执行+=运算,a+=25, a=5+25=30;此时a的值变为30
③a-=30,a=30-30=0。最后a的值为0。

综上选C
编辑于 2020-01-10 14:36:44 回复(0)
C。考察的是运算符优先级。
对题目中a=5,以及a-=a+=a*a进行分解运算。
  1. 先算*,即a-=a+=25
  2. a=a+25,a为30
  3. a-=30,a=a-30,结果为0
发表于 2020-01-09 20:23:53 回复(0)
被套路了, a+=a*a 后结果是30, a已经是30了 再a-=a 就是30-30 结果为0 . 结果选C
发表于 2020-06-04 18:21:23 回复(0)
a*a=25
a+=25 (a=a+25  其中a=5)  
得a=30
a-=30
a=a-30(其中a=30)=0
发表于 2020-01-10 12:01:29 回复(0)
int a = 5
a-=a+=a*a
由又往左计算:a+=a*a也即是a = a + a*a = 5+25 = 30
再往左计算:a -= a也即是 a = a-a = 30-30 = 0
选c
发表于 2019-08-21 15:04:09 回复(3)