GESP 二级 · GESP 202406 C++ 二级 第 9 题

选择题 · 答案 C

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

题目

下面 C++ 代码执行后的输出是( )。

int loopCount = 0;
for (int i=0; i < 10; i++)
    for (int j=1; j < i; j++)
        loopCount += 1;
cout << loopCount;
答案:C

解题思维

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

常见错误

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

详细解析(节选)

【考点】嵌套循环|计数求和|边界条件

外层循环 i 遍历 0 到 9,内层 j 从 1 到 i-1。i=0,1 时内层不执行,i=2 贡献 1 次,i=3 贡献 2 次……直到 i=9 贡献 8 次。1+2+3+4+5+6+7+8=36。

选项 A 把 i 当成 1~10 累加得 55,选项 B 误将 i=1 计入一次,选项 D 只加到 i=8。最阴险的是内层条件 j < i,当 i=1 时 j=1 不满足条件,循环体根本不执行。很多人看到 j 从 1 开始就默认会跑一次,这是典型的边界陷阱。

若内层改为 j <= i,答案变成 45;若外层上限变为 9,答案变成 28。刷这类题先问:循环条件到底是 < 还是 <=?

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