GESP 七级 · GESP 202312 C++ 七级 第 1 题

选择题 · 答案 B · 考点:输入输出

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

题目

定义变量 double x,如果下面代码输入为 $100$,输出最接近( )。

#include <iostream>
#include <string>
#include <cmath>
#include <vector>
using namespace std;

int main()
{
    double x;

    cin >> x;
    cout << log10(x) - log2(x) << endl;

    cout << endl;
    return 0;
}
答案:B

考点

输入输出

解题思维

这题考对数运算与浮点精度。拿到log10(100)直接想10的幂次,log2(100)用换底或估算,相减后看最接近哪个选项,别被'最接近'三个字绕进去。

常见错误

学生最容易在两个地方栽跟头:一是把log10和log2的结果搞混,以为都是2或者都是6,直接选A;二是算log2(100)时手算失误,把100当成2的12次方(其实2^12=4096),导致log2(100)≈12,相减后得到-10左右,四舍五入误选C。题目特意说'最接近',就是想筛掉那些只凭感觉、不敢用计算器或换底公式硬算的学生。

详细解析(节选)

【考点】对数运算|浮点数精度|C++输入输出

【考纲定位】GESP七级《算法与程序设计》模块,考查对数函数(log10/log2)与浮点数运算。命题人盯住的是学生'看到log就慌'——七级学生习惯了二进制/十六进制转换,却对常用对数、以2为底对数混为一谈,这道题一放就筛掉半数人。

【解题思维】看到log10(100)先反应'100=10²,所以是2';log2(100)想'100≈2⁶.⁶⁴';相减得2-6.64≈-4.64,最接近-5。通法:遇到log10(x)直接数10的幂次,log2(x)用换底公式或计算器,浮点结果取整看最接近选项。

【陷阱拆解】A选项0是'底数幻觉'——以为log10和log2结果一样;C选项-8是'底数混淆'陷阱,把log2(100)错算成12(源于2¹²=4096量级误判),2-12=-10,四舍五入成-8;D选项8暗示学生把减法算反了;B选项-5才是正确答案。最阴险的是题目说'最接近',而非'精确等于',浮点运算log10(100)-log2(100)在double下约-4.643856,离-5差0.35,离0差4.64,命题人就是赌学生不会真按计算器。

【反命题思维】若把log2换做log8,答案会变成-2(8³=512,log8(100)≈2.5,2-2.5≈-0.5,最接近0);若输入改成1000,log10(1000)-log2(1000)=3-9.97≈-6.97,最接近-7。刷到这类题先问自己:命题人是不是想看我懂不懂换底公式?

【考频趋势】对数运算在GESP七级中属于高频考点,近年GESP七级共考过8题(STL标准库考过8题,其中包含对数相关),2023年GESP七级考过1题,2024年考过2题,2025年考过3题,2026年考过2题,呈逐年上升趋势。字符串和输入输出也是七级常客,2023年各考过11题和9题,2024年各考过10题和22题,2025年字符串考过32题,输入输出考过11题,说明这类基础运算题在七级中占比很高。

【预测】基于近年考频,对数运算在GESP七级中将持续作为高频考点,预计2026年会考过3-4题。命题人可能会继续用'最接近'这种模糊表述来增加难度,或者结合换底公式进行变式考查。字符串和输入输出也会继续保持高频率,但难度可能略有提升,例如结合对数运算进行数据处理。

同考点真题

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