int 类型变量 a 的值是一个正方形的边长,如下图中的正方形的四条边长都为 4,则下列哪个语句执行后能够使得正方形的周长(四条边长的和)增加 4?( )。
+ + + + +
+ +
+ +
+ +
+ + + + +答案D。计算周长要正确:长方形周长=2×(长+宽)。注意运算符优先级:乘除优先于加减。
运算符优先级:*优先于+。a+b*2等于a+(b*2)不是(a+b)*2。
【考点】运算符优先级|自增运算符|赋值语句
这道题卡住大量考生的,不是数学计算能力,而是对"表达式"和"语句"的区别毫无概念。命题人故意把四个选项都设计成表达式(以分号结尾),唯独 D 选项 ++a; 偷偷改成了自增操作。学生看到"周长增加 4"就条件反射选 C,因为 a+1 确实让周长变成 20,但 a 的值根本没变——表达式求值结果直接丢弃,变量 a 还是 4,周长依旧是 16。真正能修改变量值的只有赋值语句或自增/自减语句。
解题思维:周长=4×边长,要让周长增加 4,边长必须从 4 变成 5,也就是让变量 a 自增 1。然后逐个验证选项:
a*4; 结果是 16,a 不变a+4; 结果是 8,a 不变a+1; 结果是 5,a 不变(只计算不赋值)++a; 前缀自增,a 直接变成 5,周长 20 ✓陷阱拆解:
++a 是前缀自增,等价于 a = a + 1;,这才是真正能修改变量的操作反命题思维:如果把题目改成"输出增加后的周长",答案依然是 D,因为其他选项连 a 的值都没动;如果改成"计算新周长",选项就得变成 4*(a+1) 这种表达式;这题最核心的考察点其实是"如何让变量生效",不是加减乘除本身。刷到类似题先问自己:这个选项是表达式还是语句?它真的改动了变量吗?