下面 C++ 代码用于获得正整数 $N$ 的第 $M$ 位数,如 $N$ 等于 $1234$,$M$ 等于 $2$,则输出 $3$。此题假设 $M$ 的值大于等于 $1$ 且小于等于 $N$ 的位数。横线处应填入的代码是( )。
int N, M, div=1;
cout << "请输入一个正整数:";
cin >> N;
cout << "请输入从右到左取第几位数:";
cin >> M;
for (int i = 0; i < (M - 1); i++) div *= 10;
cout << (_____________);答案D。循环补全要分析循环变量的初始值、条件和更新方式,确保能产生目标输出。
代入法验证时注意选项之间的细微差别。循环条件中的<和<=可能导致完全不同的结果。
【考点】除取余运算|位值原理|整数取位
本题落在 GESP 二级 C++ 大纲「基本运算与取位」模块。命题人放这道题就是要卡住"除和取余顺序"这个经典弱点——二级学生最容易把除和取余混在一起,导致拿不到目标位。