GESP 三级 · GESP 202406 C++ 三级 第 4 题

选择题 · 答案 C · 考点:循环控制

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

题目

下列代码将十进制转化成八进制,则横线上应填入( )。

#include <iostream>

using namespace std;

void decimal2octal(int decimal) {
    int oct_number[100];
    int i = 0;

    while (decimal > 0) {
        ________________________  // 在此处填入代码
    }

    for (int j = i - 1; j >= 0; j--) {
        cout << oct_number[j];
    }
    cout << endl;
}
答案:C

考点

循环控制

解题思维

答案C。进制转换要熟练掌握各进制间的转换方法。注意0xf=15(十六进制),015是八进制(十进制13),两者不等。

常见错误

二进制小数转十进制:小数点后第一位是2⁻¹=0.5,第二位是2⁻²=0.25。容易忽略负幂次。

详细解析(节选)

【考点】进制转换|循环控制|数组操作

1. 🎯 考纲定位

本题考查 GESP 三级 C++ 模块的进制转换核心算法。命题人卡住的是"除基取余法"的细节理解——多数考生会背"取余得位,除基移数"的口诀,但一到代码实现就分不清操作顺序和数组下标递增时机,导致要么只存最后一位,要么存反了整个序列。

同考点真题

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