GESP 六级 · GESP 202406 C++ 六级 第 6 题

选择题 · 答案 A · 考点:算法

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

题目

要实现将一个输入的十进制正整数转化为二进制表示,下面横线上应填入的代码为( )。

#include <iostream>
using namespace std;

stack<int> ten2bin(int n) {
    stack<int> st;
    int r, m;

    r = n % 2;
    m = n / 2;
    st.push(r);

    while (m != 1) {
        r = m % 2;
        st.push(r);
        m = m / 2;
    }
    st.push(m);
    return st;
}

int main() {
    int n;
    cin >> n;
    stack<int> bin;
    bin = ten2bin(n);
    while (!bin.empty()) {
        __________________ // 在此处填入代码
    }
    return 0;
}
答案:A

考点

算法

解题思维

进制转换:任意进制→十进制用按权展开;十进制→任意进制用除基取余法。注意十六进制中A-F表示10-15。

常见错误

进制转换中注意十六进制的A-F表示10-15。二进制转八进制三位一组,转十六进制四位一组。

详细解析(节选)

【考点】stack ADT|LIFO特性|十进制转二进制算法

🎯 考纲定位

本题考查 GESP 六级「C++ 语言基础」中容器 ADT 操作,核心卡住的是考生对栈「后进先出」特性的理解深度——六级不再考简单排序,而是要求掌握容器语义与输出顺序的匹配。

同考点真题

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