GESP2025年6月认证C++五级( 第一部分选择题(1-8))


🎯 第1题:链表比数组插入更有效率

1、🌈故事

数组骑士 🧱 和 链表精灵 🔗 比赛:

👉 "谁在插入、删除时更快?"


2、🧠一步一步分析

① 数组:

  • 插入一个数 👉 后面都要往后挪 ❌

  • 删除一个数 👉 后面都要往前挪 ❌

② 链表:

  • 插入 👉 改指针就行 ✅

  • 删除 👉 改指针就行 ✅


3、✅结论

👉 链表更擅长:插入和删除

🎉答案:C

题目中,其他答案都是数组的专长。


4、📌小口诀

👉 数组要搬家,链表改指针



🎯 第2题:怎么判断链表是空的?

1、🌈故事

守门员问:

👉 "这个链表里面有没有人?"


2、🧠一步一步分析

判断"空"就是看:

① head 是不是空 👉 ✅

② tail 是不是空 👉 ✅

③ size 是不是 0 👉 ✅


3、❌错误选项:

👉 head.data == 0

问题:

  • head 是指针!

  • 不能直接用 .data


4、✅结论

🎉答案:C


5、📌小口诀

👉 判断空,看有没有节点,不看数值



🎯 第3题:往链表尾巴加人

1、🌈故事

队伍后面来了一个新同学 👦

👉 要接到最后!


2、🧠一步一步操作

① 让原尾巴指向新节点

👉 tail->next = newNode

② 新节点指回原尾巴

👉 newNode->prev = tail

③ 更新尾巴

👉 tail = newNode


3、✅结论

🎉答案:D


4、📌小口诀

👉 先连后指,最后换尾



🎯 第4题:约瑟夫淘汰游戏

1、🌈故事

一圈小朋友,每数到 k 淘汰一个 😵

现在要删除当前人!


2、🧠正确步骤

① 断开链

👉 prev->next = p->next

② 删除节点

👉 delete p

③ 移动到下一个

👉 p = prev->next


⚠️顺序不能乱!


3、✅结论

🎉答案:A


4、📌小口诀

👉 先断链 → 再删除 → 再移动



🎯 第5题:质数判断的小技巧

1、🌈故事

质数侦探在找(合数)


2、🧠关键规律

👉 大于3的质数,都在:

👉 6k ± 1

例如:

  • 5 = 6×1 -1

  • 7 = 6×1 +1

  • 11 = 6*2 -1

  • 13 = 6*2 +1


3、🧠分析选项

A ❌(代码已经特判5)

B ❌(不用检查到 n/2)

C ✅(核心规律)

D ❌ (慢了)


4、✅结论

🎉答案:C


5、📌小口诀

👉 质数藏在 6k±1



🎯 第6题:最大公约数(谁更快)

1、🌈故事

两个方法比赛:

  • 🐢 暴力枚举

  • ⚡ 欧几里得算法


2、🧠分析

👉 欧几里得(递归)更快 ✅


3、❌错误点:

👉 改成 i > 1

问题:

  • 如果最大公约数是1,就找不到了 ❌

4、✅结论

🎉答案:D


5、📌小口诀

👉 gcd 可能是1,不能漏!



🎯 第7题:找质数的三种方法

1、🌈故事

三位选手比赛:

1️⃣ 普通判断(慢)

2️⃣ 埃氏筛(很快)

3️⃣ 线性筛法比埃氏筛法更快,尤其在处理大范围数据时效率优势显著。


2、🧠比较

👉 速度:

普通 < 埃氏筛 < 线性筛


❌错误说法:

👉 "埃氏筛最快" ,说的太绝对,肯定不正确。


3、✅结论

🎉答案:D


4、📌小口诀

👉 埃氏筛法,线性筛都很快,

👉 小范围数据(如 n≤10^6):可以使用埃氏筛

👉 大范围数据(如 n≥10^7):一定要使用线性筛



🎯 第8题:唯一分解定理

1、🌈故事

每个数字都有"唯一拆分方式"


2、🧠规律

👉 每个数都能拆成:

👉 质数 × 质数 × ...

而且:

👉 只有一种拆法!


3、🧠举例

12 = 2 × 2 × 3

不能写成别的组合


4、✅结论

🎉答案:B


5、📌小口诀

👉 一个数 = 唯一的质数乘积


🌟 知识点总结:

1️⃣ 链表插删快

2️⃣ 判断空看指针

3️⃣ 插入三步走

4️⃣ 删除要顺序

5️⃣ 质数看6k±1

6️⃣ gcd不能漏1

7️⃣ 线性筛最快

8️⃣ 质数分解唯一


相关推荐
cpp_25011 分钟前
P1113 [USACO02FEB] 杂务
数据结构·c++·算法·动态规划·图论·拓扑排序·洛谷题解
此生决int6 分钟前
深入理解C++系列(11)——stack、queue和priority_queue
开发语言·c++
小徐不徐说1 小时前
VS 2022 Visual Assist 破解
c++·visualstudio·工具·插件
Doraemomo2 小时前
数据结构-双向链表与多文件工程整合之makefile基础
数据结构·链表
郝学胜-神的一滴2 小时前
Qt 高级编程 042:进度条从入门到自定义美化
开发语言·c++·qt·软件开发·用户界面
啦啦啦啦啦zzzz2 小时前
5种IO模型
运维·服务器·网络·c++
呱呱巨基2 小时前
Docker 基础概念学习
linux·c++·学习·docker
郝学胜_神的一滴4 小时前
C++20 高级编程 001:从极简HelloWorld到现代类型体系全梳理
c++·后端
Lazionr4 小时前
list容器详解——双向链表的封装与使用
数据结构·c++·链表·list
Nil2084 小时前
C++ emplace_back 与 push_back 详解
开发语言·c++