GESP 一级 · GESP 202409 C++ 一级 第 14 题

选择题 · 答案 D

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

题目

下面的 C++ 代码用于求连续输入的若干正五位数的百位数之和。例如输入 32488 25731 41232 0,则输出 3 个正五位数的百位数之和为 13。有关描述错误的是( )。

int M, Sum = 0, rc = 0;
cout << "请输入正整数:";
cin >> M;

while (M) {
    M = (M / 100 % 10);  // L6
    Sum += M;
    rc++;
    cin >> M;
}

cout << rc << "个正五位数的百位数之和为" << Sum;
答案:D

解题思维

答案D。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。

常见错误

逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。

详细解析(节选)

【考点】整数除取整|取余运算|百位提取

1. 🎯 考纲定位

本题落在 GESP 一级「C++ 语言基础」模块,考察整数运算与位值分解。命题人卡住的是:学生把「除 100 取余 10」当成固定套路,却对运算顺序和语义边界不清,导致改选项时直接套用而不验证。

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