下面 C++ 代码被执行后,将先后输出 3 和 5。( )
for (int i = 3; i < 5; i += 2)
printf("%d ", i);答案B。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
【考点】循环控制|条件判断|for 语句结构
1. 🎯 考纲定位(考点定位) GESP一级《循环结构》模块第2章核心考点。命题人专攻初学者对"循环条件先判断"这一执行顺序的混淆——绝大多数考生会忽略循环体执行后条件立即重判,误以为 i=5 仍满足 i<5。
2. 🧠 解题思维(拆解与通法) 看到 for 循环先锁定三要素:初值、条件、步进。本题初值 i=3,步进 i+=2,条件 i<5。按执行顺序:① 初值赋值 i=3;② 条件检查 3<5 成立,执行循环体打印3;③ 步进 i+=2 变为5;④ 条件检查 5<5 不成立,终止。通法:模拟循环时务必在每次步进后立即重新验证条件,尤其当步进可能跳过临界值时。
3. 🪤 陷阱拆解(命题人的套路) 选项B(错误)是命题人精心设计的"语义陷阱":题目声称输出3和5,但循环条件 i<5 在 i=5 时已为假,5 永远不会进入循环体。若将条件改为 i<=5 或步进改为 i+=1,答案会变为正确。此题最阴险处在于"i+=2"直接跳过了4,考生易被"5"这个数字迷惑,忘记循环条件判定的即时性。
4. 🔄 反命题思维(教练升华) 若把步进改为 i+=1,循环会输出3、4、5?错!条件仍为 i<5,故输出3、4。再改条件为 i<=5,则输出3、4、5。刷到类似题时,先问自己"循环条件在步进后是否立即重判",再结合步进量判断临界点是否可达。