某学校图书馆的借阅卡号由 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_numB.
tnt += order_num % 10
tnt % 10 == check_numC.
tnt = order_num / 10 + tnt
tnt % 10 == check_numD.
tnt = order_num % 10
tnt / 10 == check_num答案B。考点: 循环结构——for/while的执行与嵌套。
关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。
数组下标从0开始,a[n]访问的是第n+1个元素。越界不报编译错但结果不可预测。
【考点】取余运算|循环累加|条件判断
GESP二级算法设计模块核心考点。命题人卡住的是「位值运算理解」——候选人看到 / 和 % 容易混淆,把「取整」和「取位」当成一回事,这是二级考生最高频的运算概念错误。