GESP C++ 真题 · 逐题精解
首页C++一级真题 › 2025年9月 › 第13题

GESP 2025年9月 C++一级 单选题 第13题

C++一级单选题2025年9月第13题

所属知识点:for 循环 难度要求:掌握 考频:高频

下面 C++ 代码用于获得正整数 N 的第 M 位数,约定个位数为第 1 位,如 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

题目解析
div 经循环变成 10 的 (M−1) 次方,用来砍掉低位。取第 M 位:N/div 把目标位移到个位,再 %10 取出。所以填 N / div % 10,选 D。 💡 取某一位的万能套路:/ 除到个位,再 %10 取出。除以 10 的 k 次方去掉低 k 位,%10 拿个位。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习