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


相关推荐
啊吧怪不啊吧1 分钟前
C++之基于正倒排索引的Boost搜索引擎项目usuallytool部分代码及详解
开发语言·c++·搜索引擎·项目
专注前端30年30 分钟前
智能物流路径规划系统:核心算法实战详解
算法
json{shen:"jing"}1 小时前
字符串中的第一个唯一字符
算法·leetcode·职场和发展
追随者永远是胜利者1 小时前
(LeetCode-Hot100)15. 三数之和
java·算法·leetcode·职场和发展·go
BlockWay2 小时前
西甲赛程搬进平台:WEEX以竞猜开启区域合作落地
大数据·人工智能·算法·安全
漫雾_3 小时前
两个强制结束进程的方法
c++·驱动开发·安全
HAPPY酷4 小时前
C++ 多线程实战三板斧
java·开发语言·c++·技术美术
im_AMBER4 小时前
Leetcode 121 翻转二叉树 | 二叉树中的最大路径和
数据结构·学习·算法·leetcode
fpcc4 小时前
并行编程实战——CUDA编程的Tile
c++·cuda
mit6.8244 小时前
二分+贪心
算法