GESP 二级 · GESP 202412 C++ 二级 第 23 题

判断题 · 答案 A · 考点:循环控制

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

题目

下面的 C++ 代码执行后将输出 18 行 “OK”。( )

int i,j;
for (i = 8; i > 2; i-=2)
    for (j =0; j < i; j++)
        printf("OK\n");
答案:A

考点

循环控制

解题思维

答案A。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。

常见错误

整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。

详细解析(节选)

1. 🎯 考纲定位

【考点】循环控制|变量作用域|程序执行流程

【命题意图】GESP 二级要求掌握基础循环嵌套,但真实考试中 80% 考生死在"外循环变量语义"上——他们习惯把循环变量当普通计数器,却忽略它同时控制内循环层数。这道题就是专门卡住这个盲点:外循环变量 i 既是迭代器又是内循环边界,多数人会误算成 8+8+8=24 或 8+6+4+2=20。

2. 🧠 解题思维

看到嵌套循环先抓两层关系:内循环次数由外循环变量决定,外循环变化步长由 i-=2 固定。

外循环:i 从 8 开始,每次减 2,条件 i>2 才继续 → i 取值 8,6,4 共三层。 内循环:每层 j 从 0 到 i-1 → 分别执行 8、6、4 次。

总执行次数=8+6+4=18 次,对应 18 行 OK。

同考点真题

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