GESP 二级 · GESP 202603 C++ 二级 第 13 题

选择题 · 答案 B

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

题目

某学校图书馆的借阅卡号由 6 位整数组成。前 5 位是顺序编号,第 6 位是校验码,用于防止输错。校验码规则如下:将前 5 位数字相加,然后除以 $10$ 的余数,就是第 6 位数字。如卡号 $123455$ 的前 5 位之和为 $15$,除以 $10$ 的余数是 $5$,故第 6 位为 $5$。下面的 C++ 代码段用于判断卡号是否正确,横线处应填入的代码是( )。

cout << "请输入卡号:";
cin >> N;
order_num = N / 10; // 获得前5位顺序号,假设录入一定为6位正整数
check_num = N % 10; // 获得最后一位

tnt = 0; // 保存前5位之和
for (i = 0; i < 5; i++) {
    ________________;
    order_num /= 10;
}

if (________________)
    cout << "符合校验规则";
else
    cout << "不符合校验规则";

A.

tnt += order_num / 10
tnt / 10 == check_num

B.

tnt += order_num % 10
tnt % 10 == check_num

C.

tnt = order_num / 10 + tnt
tnt % 10 == check_num

D.

tnt = order_num % 10
tnt / 10 == check_num
答案:B

解题思维

答案B。考点: 循环结构——for/while的执行与嵌套。

常见错误

关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。

数组下标从0开始,a[n]访问的是第n+1个元素。越界不报编译错但结果不可预测。

详细解析(节选)

【考点】取余运算|循环累加|条件判断

🎯 考纲定位

GESP二级算法设计模块核心考点。命题人卡住的是「位值运算理解」——候选人看到 / 和 % 容易混淆,把「取整」和「取位」当成一回事,这是二级考生最高频的运算概念错误。

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