GESP 一级 · GESP 202309 C++ 一级 第 20 题

判断题 · 答案 A

← 整套速查表 GESP 一级 全部真题

题目

C++ 的循环语句 for (int i = 0; i < 10; i += 2) 表示 $ i $ 从 0 开始到 10 结束但不包含 10,间隔为 2。

答案:A

解题思维

这道题考的是 for 循环的执行顺序和边界判断。拿到题先想:for 是‘先判后增’,i 从 0 开始,每次加 2,直到 i<10 不成立就停,所以 i 取到的值是 0,2,4,6,8,到 10 时先判断 10<10 为假,循环结束,10 从未进入循环体,因此‘到 10 结束但不包含 10’完全正确。

常见错误

最容易踩的坑是把‘到 10 结束’口语化理解成包含 10,选了 B。其实命题人就是利用中文表述的模糊性挖坑:条件 i<10 是严格小于,当 i 增到 10 时,先判断条件为假,循环直接退出,10 根本没机会进循环体。很多人会误以为‘增到 10 还会执行一次’,错在没记住 for 的‘先判后增’机制,把 while 的‘先判后增’和 do-while 的‘先执行后判’搞混了。此外,还有人会纠结‘步进 i+=2 会不会导致 i 直接跳到 10 以上’,其实步进只影响下一次循环的初值,不影响本次判断,i 从 8 加 2 正好是 10,而 10<10 为假,循环结束,所以‘不包含 10’是对的。

详细解析(节选)

【考点】循环语句|语句执行流程|条件判断

1. 考纲定位

GESP 一级「程序设计与语法」模块,循环语句基础题。命题人卡住的是「范围理解的边界陷阱」——学生常把「到 10」口语化理解为包含 10,却忽略了条件判断的精确性。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断