下面流程图逻辑:初始化 $sum \leftarrow 0$,$i \leftarrow 0$;当 $i < n$ 成立时,执行 $sum \leftarrow sum + a[i]$,再执行 $i \leftarrow i + 1$; 循环结束输出 sum。该流程图可以正确计算一维数组 a[0] ~ a[n] 全部元素的总和。
看到求和流程图先定位循环边界——数组 a[0]~a[n] 共 n+1 个元素,循环变量 i 必须遍历 0 到 n 全部下标。核心判断条件应为 i≤n 或 i<n+1,否则必漏掉最后一个元素。
多数考生被"求和"这个正确目标误导,默认流程图是对的,没细看循环条件。命题人把条件写成 i<n 或 i<n-1 这类边界陷阱,利用"数组下标从 0 开始"这一基础概念,让粗心者误以为 i<n 就能覆盖 n 个元素,实则只到 n-1。
本题考查《GESP 考试大纲》三级"数组"模块中的数组遍历与循环控制知识点。命题人把这道题放在这里,就是要卡住考生对循环边界条件的敏感度——绝大多数人看到"求和"就默认逻辑正确,却忽略了数组下标从 0 开始这一关键事实。
看到流程图先定位循环边界:数组 a[0]~a[n] 共 n+1 个元素,循环变量 i 必须遍历 0 到 n 全部下标。核心判断条件应为 i≤n 或 i<n+1,否则必漏掉最后一个元素。
以 n=2 为例:数组有 a[0]、a[1]、a[2] 三个元素。若条件写成 i<n,则 i 取值 0、1,循环执行两次,a[2] 永远进不去,sum 少加一项。若条件写成 i≤n,则 i 取值 0、1、2,循环执行三次,三个元素全部累加,结果正确。