GESP 二级 · GESP 202512 C++ 二级 第 10 题

选择题 · 答案 B · 考点:循环结构

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

题目

与下面 C++ 输出效果不一致的代码是( )。

int i;
for (i = 0; i < 10; i++)
    cout << i;

A.

int i = 0;
while (i < 10) {
    cout << i;
    i += 1;
}

B.

int i = 0;
while (i < 10) {
    i += 1;
    cout << i;
}

C.

int i = 0;
while (true) {
    cout << i;
    i += 1;
    if (i >= 10)
        break;
}

D.

int i = 0;
while (true) {
    if (i >= 10)
        break;
    cout << i;
    i += 1;
}
答案:B

考点

循环结构

解题思维

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

常见错误

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

详细解析(节选)

【考点】循环结构语义|循环体执行顺序

1. 🎯 考纲定位 GESP二级 C++ 模块"循环与控制结构",命题人专门卡住"循环体内部多语句顺序"这个盲点——学生背了循环语法,却对for 循环里 cout 和 i++ 谁先谁后毫无概念。

2. 🧠 解题思维 先手算原式:i=0→1→2→3→4→5→6→7→8→9,共 10 个数且0 开头。 逐项对比:

唯一不一致的是 B。

3. 🪤 陷阱拆解

4. 🔄 反命题思维 若把原式改成 for (i = 1; i <= 9; i++) cout << i;,B 依然会输出 2 3 4 5 6 7 8 9(整体偏移),仍是唯一不一致。 刷到类似题,先问自己:"循环体内有多条语句时,它们的先后顺序决定输出序列"。

同考点真题

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