下面的 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。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
【考点】整数除取整|取余运算|百位提取
本题落在 GESP 一级「C++ 语言基础」模块,考察整数运算与位值分解。命题人卡住的是:学生把「除 100 取余 10」当成固定套路,却对运算顺序和语义边界不清,导致改选项时直接套用而不验证。