已知double a=5.2;则正确的赋值表达式是()。
A.a+=a-=(a=4)*(a=3) B a=a*3=2 C a%3 D a=double(-3)
double不能用于% 运算
a=(double)-3
每次a赋值后,汇编 中对应的地址 的 值就被改了,再寻址四则运算后,值都是更新后的值。
北方 回复 北方: 我特指选项A
1. 首先,根据逗号运算符的规则,将`double a=5.2`和`a+=a-=(a=4)*(a=3)`分开处理。 2. 对于`double a=5.2`,将5.2赋值给变量a,此时a的值为5.2。 3. 对于`a+=a-=(a=4)*(a=3)`,根据赋值运算符的右结合性,首先计算等号右边的b表达式。 4.首先,计算`(a=4)*(a=3)`。根据赋值运算符的规则,先将4赋值给a,然后将3赋值给a,所以此时a的值为3。然后计算4 * 3,结果为12。 5. 接下来,计算`a+=a-=12`。根据赋值运算符的规则,先计算右边的`a-=12`,即将a的值减去12,得到-9。然后计算`a+=-9`,即将a的值加上-9,最终a的值为-3。 综上所述,根据表达式`double a=5.2, a+=a-=(a=4)*(a=3)`的求值过程,最终a的值为-3。
北方 回复 bc777: 分析错误。 每次a赋值后,汇编 中对应的地址 的 值就被改了,再寻址四则运算后,值都是更新后的值。
很好奇a答案的值是怎么得-12的
快乐小土狗 回复 xie: 根据运算法则,先a=a-(a=4)*(a=3),就相当于a=5.2-4*3;然后a=5.2+(5.2-4*3),所以a输出出来就是-12;(a=4)*(a=3)这样是可以的,就把他看作4*3
快乐小土狗 回复 快乐小土狗: D选项错在强制类型转换必须加括号,正确应是a=(double)-3
ZzwZzw 回复 快乐小土狗: 啥意思
昨夜西风凋碧树 回复 快乐小土狗: 11
19568276867 回复 快乐小土狗: 强
A
用户登录可进行刷题及查看答案
登录后提交答案