题目
若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为________。
若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为________。
题目解答
答案
900
解析
考查要点:本题主要考查运算符优先级和复合赋值运算符的理解与应用。
解题核心思路:
- 分解复合运算符:将
k*=i+j
转换为k = k * (i + j)
,明确运算顺序。 - 代入变量值:根据题目给出的初始值,逐步计算表达式的结果。
- 注意运算符优先级:加法
+
的优先级低于复合赋值*=
,但实际运算时需先计算右侧表达式i + j
,再与k
相乘。
关键点:
- 复合赋值运算符的展开方式是解题的核心,需正确拆分运算符。
- 运算顺序:先计算右侧表达式,再赋值给左侧变量。
步骤分解:
-
初始值代入:
i = 10, j = 20, k = 30
-
展开复合运算符:
k *= i + j → k = k * (i + j)
-
计算右侧表达式:
i + j = 10 + 20 = 30
-
执行乘法运算:
k * (i + j) = 30 * 30 = 900
-
赋值并更新k的值:
k = 900
结论:表达式k*=i+j
的值为900,同时k
的值被更新为900。