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

选择题 · 答案 A · 考点:位运算

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

题目

在下列 C++ 代码中,如果 N 和 M 均输入大于 0 的整数,则可以取得正整数 N 的从右到左第 M 位置的 数。个位数为第 1 位置。则横线处应填入(  )。

int N, M, M10;

cout << "请输入正整数:";

cin >> N;

cout << "从右到左第几位?";

cin >> M;
M10 = 1;
for (; M > 1; M--)
M10 *= 10;
cout << ______________; // L1
答案:A

考点

位运算 讲解 →位运算 真题汇总 →

解题思维

看到 M10 循环乘 10 → 先除 M10 再取模 10

常见错误

C 项先取模把数压到 M10 以内,得到的是低位而非第 M 位

详细解析(节选)

考点:整数除法取模 解析:M10 最终等于 10^(M-1)。要提取第 M 位,需先右移 M-1 位(N / M10),再取个位(% 10)。

选项分析

同考点真题

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