GESP2025年12月认证C++三级真题与解析(单选题1-8)


🌟 第 1 题:二进制小精灵变魔术

(1)📘 题目

把一个 二进制小数 转换成 十进制数

正确答案:B:13.625


(2)🧙‍♂️ 故事讲解

想象二进制数是一个"小精灵密码":

cpp 复制代码
1101.101

我们要把它翻译成人类能看懂的十进制语言


(3)🧮 计算过程(权值求和)

1️⃣ 整数部分 1101
1 × 8 8
1 × 4 4
0 × 2 0
1 × 1 1
➡️ 合计:13

|--------------|---|
| ➡️ 合计:13 | |


2️⃣ 小数部分 .101
1 × 1/2 0.5
0 × 1/4 0
1 × 1/8 0.125
➡️ 合计:0.625

|-----------------|---|
| ➡️ 合计:0.625 | |


3️⃣ 📌 所以答案是:
13 + 0.625 = 13.625


(4)🧠 知识点总结

👉 二进制小数

👉 小数点右边是:1/2, 1/4, 1/8 ...



🌟 第 2 题:数组小火车 🚂

(1)📘 题目

下面关于 一维数组 的说法,哪一个是 错的

正确答案:C


(2)🎒 故事讲解

数组就像一列火车 🚆:

  • 每节车厢都有编号

  • 车厢挨着车厢排好

  • 可以随时换某一节车厢里的东西


(3)🔍 逐项分析

A:下标从 0 开始

cpp 复制代码
int a[3] = {10, 20, 30};
// a[0] 是 10

B:内存中是连续存放的

(火车车厢紧挨着)


C:数组长度只能运行时确定

👉 错误!

cpp 复制代码
int a[5];   // 编译时就已经确定了

D:可以修改数组元素

cpp 复制代码
a[1] = 99;

(4)🧠 知识点总结

👉 普通数组:大小是提前定好的



🌟 第 3 题:神秘的 sum 宝箱 🎁

(1)📘 题目

一段代码运行后,sum 的值是多少?

正确答案:D:40


(2)🧮 思路讲解

这类题是典型的:

"for 循环 + 累加器"

只要记住一句话:

📌 每循环一次,就往 sum 里加点东西


(3)✨ 考试技巧

自己画表格:

i sum
1 1
2 1(continue)
... ...

8 >> 2 : 等于 8 / 4 = 2

i % 3 == 8 >> 2 : i % 3 == 2

等差数列求和公式:(1+10)*10 / 2 = 55

continue的数组和:2 + 5 + 8 = 15

最终结果: 55 - 15 =40


(4)🧠 知识点总结

👉 for 循环

👉 累加变量(sum += i



🌟 第 4 题:位运算小陷阱 🪤

(1)📘 题目

下面程序输出什么?

正确答案:B:5


(2)🔍 关键知识点

这道题就考**"位移运算"**

cpp 复制代码
3 >> 2   // 等于 0
8 >> 3   // 等于 1

(3)🧠 故事讲解

想象数字在传送带上:

  • >> 表示 向右挪

  • 挪一次,相当于 除以 2


(4)🧮 代码分析

cpp 复制代码
int x = 5;
if (x == 3 >> 2)   // 3>>2 = 0

❌ 5 ≠ 0,所以 if 不成立

➡️ x 没变

➡️ 输出 5


(5)🧠 知识点总结

👉 >> 位运算

👉 3级考试必考!



🌟 第 5 题:字符串长度大冒险 📏

(1)📘 题目

cpp 复制代码
string s = "C++ Programming";

s.length() 是多少?

正确答案:B:15


(2) 🧮 数一数

cpp 复制代码
C(1) +(2) +(3) 空格(4)
P(5) r6 o7 g8 r9 a10 m11 m12 i13 n14 g15

(3) 🧠 知识点总结

👉 length()空格也算字符!



🌟 第 6 题:神秘程序的输出 🎯

(1)📘 题目

代码能正常执行,输出结果是?

正确答案:D:4


(2)🧠 提示

这一题本质是:

数组索引 + 变量修改


(3) 提醒大家:

📌 一行一行慢慢看,别跳!

int p = arr[1]; --> p = 2
(p + 2) --> p = 2 + 2 = 4



🌟 第 7 题:min 函数小法官 ⚖️

(1) 📘 题目

关于 min() 函数,说法哪个是错的?

正确答案:D


(2) 🧠 故事讲解

min 是个小裁判:

cpp 复制代码
min(3, 5)   // 返回 3

❌ 错误选项

cpp 复制代码
min()   // ❌ 没有参数,编译直接报错

(3)🧠 知识点总结

👉 函数 必须要传对参数



🌟 第 8 题:unsigned int 的地盘 🏠

(1)📘 题目

unsigned int2 字节,能表示的范围是?

正确答案:A:0 ~ 65535


(2)🧮 计算方法

  • 2 字节 = 16 位

  • unsigned(无符号)

  • 最大值 = 2^16 - 1

cpp 复制代码
0 ~ 65535

(3)🧠 知识点总结

👉 unsigned:没有负数

👉 范围公式:2 ^ 位数 - 1


相关推荐
颜酱14 小时前
图的数据结构:从「多叉树」到存储与遍历
javascript·后端·算法
saltymilk19 小时前
使用 C++ 模拟 ShaderLanguage 的 swizzle
c++·模板元编程
zone773920 小时前
006:RAG 入门-面试官问你,RAG 为什么要切块?
后端·算法·面试
CoovallyAIHub1 天前
OpenClaw 近 2000 个 Skills,为什么没有一个好用的视觉检测工具?
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
CVPR 2026 | 用一句话告诉 AI 分割什么——MedCLIPSeg 让医学图像分割不再需要海量标注
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
Claude Code 突然变成了 66 个专家?这个 5.8k Star 的开源项目,让我重新理解了什么叫"会用 AI"
深度学习·算法·计算机视觉
兆子龙1 天前
前端哨兵模式(Sentinel Pattern):优雅实现无限滚动加载
前端·javascript·算法
xlp666hub1 天前
Leetcode第五题:用C++解决盛最多水的容器问题
linux·c++·leetcode
CoovallyAIHub1 天前
9个视觉语言模型工厂实测:Qwen 87.9%碾压全场,你的显卡能跑哪个?
算法
SparkX开源AI知识库1 天前
手摸手带你安装OpenClaw并对接飞书
算法·架构