C++ 的循环语句 for (int i = 0; i < 10; i += 2) 表示 $ i $ 从 0 开始到 10 结束但不包含 10,间隔为 2。
这道题考的是 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’是对的。
【考点】循环语句|语句执行流程|条件判断
GESP 一级「程序设计与语法」模块,循环语句基础题。命题人卡住的是「范围理解的边界陷阱」——学生常把「到 10」口语化理解为包含 10,却忽略了条件判断的精确性。