执行int a=2;a*=a+2;后a的值为是?

如题所述

a的值为0

a += a*a 》》a = a+a*a=6

a -= a += a*a ?>> a = a - (a += a*a) = 0

扩展资料

标准函数INT(X)其基本功能是得到一个不大于X的最大整数,如INT(3.59)=3,INT(-2.01)=-3。INT函数是一个用途很广的函数,在教学中能有目的的分列其使用技巧。

C语言没有规定各种整数类型的表示范围,也就是说,没有规定各种整数的二进制编码长度,对于int和long,只规定了long类型的表示范围不小于int,但也允许它们的表示范围相同。具体C语言会对整型和长整型规定表示方式和表示范围。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-13

a的值是10 ,不是12。

int a=2; a*=2+3;语句执行过程:

int a=2;//将2赋值给a

a*=2+3;//要考虑运算符的优先级,运算符+的优先级大于*=,故a*=5,即a=a*5。a被赋值为2,所以a=2*5=10。

扩展资料:

运算符优先级:

1、优先级

单目运算符 > 双目运算符 > 三目运算符;

2、单目运算符优先级

结合性规定对于一元运算符是冗余的,只为完备而给出:一元前缀运算符 始终 从右到左 结合,delete ++*p 被解释为 delete(++(*p)) ;而 一元后缀运算符 始终 从左到右 结合,a[1][2]++ 被解释为 ((a[1])[2])++

3、双目运算符优先级

四则运算运算符 > 移位运算符 > 关系运算符 > 逻辑位运算符 > 逻辑运算符 > 赋值运算符;

四则运算符中,+、- 优先级低于 *、/、%;

比较运算符中,==、!= 优先级低于 >、<、>=、<=;

4、三目运算符优先级

C 中,三元条件运算符拥有高于赋值运算符的优先级。因此,表达式 e = a < d ? a++ : a = d 在 C++ 中剖析成 e = ((a < d) ? (a++) : (a = d)),但在 C 中会由于 C 的语法或语义制约而编译失败。

第2个回答  2015-06-27
执行int a=2;a*=a+2;后a的值是8。
因为这是执行的a=a*(a+2)=2*(2+2)=8本回答被网友采纳
第3个回答  2015-06-27
你没有声明指针a,只有整形a追问

是选择题 A2 B6 C8 D4

追答

=a*(a+2)=8