GESP 七级 · GESP 202503 C++ 七级 第 19 题

判断题 · 答案 B

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

题目

long long 类型能表达的数都能使用 double 类型精确表达。

答案:B

解题思维

判断正误题需注意绝对化表述("一定""必须""只能"等)往往是错误的。

常见错误

判断题中注意"一定""总是""所有""唯一"等绝对化表述通常是错误的。但也要结合具体知识点判断。

详细解析(节选)

【考点】浮点数精度|整数溢出|IEEE 754 标准

GESP 七级 C++ 数据表示模块。命题人专攻考生对浮点数精度的认知盲区——多数同学误以为 double 是“高精度”类型,却不知它只能精确表示到 2^53 左右的整数,远小于 long long 的 2^63 范围。

解题链:1) long long 是 64 位整数,可精确表示 ±2^63-1;2) double 遵循 IEEE 754,有效数字仅 53 位(1 位符号+52 位尾数),能精确表示的整数上限为 2^53-1;3) 2^63 >> 2^53,故存在大量 long long 整数在 double 中无法精确表示。

陷阱拆解:A 选项利用“能表达”与“精确表达”的偷换概念——double 确实能存储这些数,只是精度不够。命题人专攻“只背类型名称不推演精度”的误区,用“能表达”诱导考生忽略尾数 52 位的硬性限制,导致误选 A。

反命题视角:若将 long long 换成 float,float 尾数仅 23 位,上限 2^24,long long 上限更大,更不可能;若将 double 换成 unsigned long long,范围更大,还是不可能。命题人想考的是“整数在浮点中的表示精度”,而非“类型大小”,故无论怎么换,只要涉及 double 与整数的精度对比,答案都是 B。

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