下面 C++ 代码第 2 行,总共被执行次数是( )。
for(int i=-10; i<10; i++)
cout << i << " ";这题考的是 for 循环的执行机制,特别是起始值为负数时的计数。拿到题先别急着套公式,要把循环变量 i 从 -10 开始,一次一次地代入条件 i<10 去数,直到 i 变成 10 条件不满足为止,这样最稳妥。
学生最容易犯的错是只算正数部分,或者把负数漏掉。比如选项 A 的 10 次,就是只算了 0 到 9;选项 B 的 19 次,可能是把 -10 到 9 算成了 20 个数,却误以为循环只执行 19 次,或者把 -10 漏掉了;选项 D 的 21 次,则是错误地认为当 i 等于 10 时还会执行一次,或者把 i++ 的位置想错了。其实只要记住 for 循环是先判断条件再执行循环体,从 -10 到 9 一共 20 个整数,循环体就会执行 20 次。
【考点】循环结构|条件判断|循环控制
1. 考纲定位:GESP 一级大纲中,for 循环是基础考点。这道题卡住的是只记“循环次数=结束值减起始值”的考生——他们忽略了起始值为负数时,循环从 -10 到 9 共 20 次。命题人想考察对循环边界条件的理解,特别是负数起始值的影响。
2. 解题思维:看到 for 循环,先判断起始值、终止条件、增量。起始值 i=-10,条件 i<10,每次 i++。从 -10 到 9,包括 -10, -9, ..., 9,一共 20 个整数。循环体(第 2 行)在每次循环开始时执行,条件判断在每次循环开始时执行。所以第 2 行执行次数等于循环次数,即 20 次。通法:计算循环次数 = 终止值 - 起始值 + 1(如果满足条件)。这里终止值是 9,起始值是 -10,所以 9 - (-10) + 1 = 20。
3. 陷阱拆解:选项 A 10 是只算了正数部分(0 到 9),忽略了负数部分。选项 B 19 可能是只算了 0 到 9 的 10 个,加上 -10 到 -1 的 9 个,但不包括 -10?或者误以为循环从 -9 开始。选项 D 21 可能是错误地认为循环到 10 也执行,或者把 i++ 后判断,导致多算一次。命题人利用的是考生对循环边界条件的误解,特别是起始值为负数时,循环次数容易计算错误。绝对化表述如“循环次数是 10”是常见陷阱。
4. 反命题思维:如果把起始值改成 0,循环次数就是 10 次。如果把条件改成 i<=10,循环次数就是 21 次。如果把增量改成 i+=2,循环次数就是 10 次。刷到类似题时,先问自己“命题人想考我什么”,比如起始值、条件、增量等。
【考频与趋势】循环结构在题库中占比很高,共考过 609 题,覆盖 12 个考试级别(2008-2026)。逐年分布显示,2024 年考了 128 题,2025 年考了 158 题,2026 年考了 161 题,呈现逐年上升趋势。分赛事来看,GESP 一级考了 139 题,GESP 二级考了 172 题,GESP 三级考了 89 题,GESP 四级考了 87 题。控制结构共考过 429 题,其中 2024 年考了 138 题,2025 年考了 160 题,2026 年考了 45 题。循环控制共考过 5 题,覆盖 3 个考试级别(2019-2024),其中 2024 年考了 1 题。基础语法共考过 1295 题,覆盖 11 个考试级别,其中 2024 年考了 413 题,2025 年考了 401 题,2026 年考了 109 题。
【预测】基于给定数据,循环结构在 2024-2026 年呈现逐年上升趋势,且 GESP 一级、二级、三级、四级均有较高考频。因此,未来几年内,循环结构仍将是 GESP 一级考试的重点考点,尤其是涉及负数起始值、条件判断、增量变化等细节的题目,命题人可能会继续通过这类题目考察学生对循环边界的理解。暂无足够依据预测具体题型变化,但可预期此类基础概念题仍会高频出现。