当前位置: 首页 > news >正文

GESP2025年9月认证C++四级真题与解析(单选题9-15)


🌟 第 9 题:排序算法的“稳定性”是什么?

(1)❓ 题目问

下面关于排序算法稳定性的说法,哪个是错误的?

正确答案:✅C. 选择排序是稳定的排序算法(错误)


(2)🧸 故事讲解:排队的小朋友 🎒

假设有几位小朋友,身高一样,但衣服颜色不同

A(红) B(蓝) C(红)

(3)如果按“身高”排序:

  • 稳定排序
    👉 红 A 还在 红 C 前面

  • 不稳定排序
    👉 红 A 和 红 C 的顺序可能被换掉


(4)📌 三种排序的性格

排序算法稳定吗原因
冒泡排序✅ 稳定只交换相邻
插入排序✅ 稳定像插队
选择排序❌ 不稳定会“远距离交换”

(5)🧠 记忆口诀

👉选择排序爱乱换,不稳定

👉冒泡、插入都稳定



🌟 第 10 题:选择排序

(1)❓ 题目核心

让数组nums从小到大排序

正确答案:✅A

nums[j] < nums[minIndex] swap(nums[i], nums[minIndex])

(2)🧸 选择排序原理 👑

  • i轮:

    • 先假设第 i 个最小

    • 在后面找更小的

    • 如果找到了,就交换

  • 最后结果:
    👉把从i向后最小的,确保换到第 i 位


(3)🧠 为什么是<

因为我们要从小到大排列,需要找最小值


(4)🧠 记忆口诀

👉从小到大来排列

👉找最小,换到前



🌟 第 11 题:插入排序

(1)正确答案:✅A

arr[j] > key arr[j + 1] = key

(2)🧸 插入排序像什么?

整理扑克牌 🃏

  • 左边的牌已经排好

  • 右边新来一张

  • 往左找位置,插进去


(3)🔍 while 循环含义

while (j >= 0 && arr[j] > key)

意思是:

👉 只要前面的牌比我大,就往右挪


(4)🧠 记忆口诀

👉大的往后挪,数组腾出位置,插中间



🌟 第 12 题:插入排序的时间复杂度

(1)正确答案:✅B

最好情况:O(n)
最坏情况:O(n²)


(2)😊 最好情况(已经排好队)

1 2 3 4 5
  • 每个数只看一眼

  • 👉很快


(3)😭 最坏情况(全反着)

5 4 3 2 1
  • 每次都要一路往前挪

  • 👉很慢


(4)🧠 记忆口诀

👉插入排序:顺快只要走n次,乱慢最多要走n的平方次。



🌟 第 13 题:爬楼梯(斐波那契数列

(1)正确答案:✅B

核心递推式:

current = prev1 + prev2; prev2 = prev1; prev1 = current;

(2)🧸 故事讲解

小杨爬楼梯:

  • 一次爬1 阶

  • 或一次爬2 阶


(3)🎯 规律发现

  • 到第 n 阶的方法数 =

    • 到第 n-1 阶的方法数

      • 到第 n-2 阶的方法数

👉和斐波那契数列一样!


(4)🧠 记忆口诀

👉斐波那契数列用递推

👉当前这步 = 前两步之和



🌟 第 14 题:枚举三数,时间复杂度是多少?

(1)正确答案:✅C. O(n³)


(2)🧸 故事讲解:三人小组 👨‍👩‍👧

for i for j for k

(3)老师想找:

三个同学的分数加起来等于 300


(4)🔍 有几层循环?

👉3 层


(5)🧠 时间复杂度规则

👉几层 for,就几次 n相乘


(6)🧠 小朋友口诀

👉一层循环, n次复杂度

👉二层循环,n的平方复杂度

👉三层循环,n的立方复杂度



🌟 第 15 题:异常处理,哪句话是错的?

(1)正确答案:✅D

“所有异常都必须被捕获,否则程序会崩溃”


(2)先给同学一句话结论 🎯

不是所有异常都“必须”被捕获
没被捕获,不等于立刻崩溃


附详细解析:用故事讲“异常处理” 🧸

一、《程序里的接球游戏》⚾

想象:

  • 程序在跑

  • 有时候会扔出一个“问题球”

  • 我们可以选择,也可以不接


二、🎯 三个角色

角色C++ 里是谁做什么
扔球的人throw抛出异常
接球区try可能出事的地方
接球手catch接住异常

三、逐个选项详细解析(重点!)📋


1、✅ A. try 块中的代码可能会抛出异常(正确)

(1)🧸 理解

try { int x = 10 / 0; // 有风险 }

(2)👉try就是告诉程序:

“这里可能会出问题,注意一下!”


(3)📌 结论

✔ 正确
✔ try 就是用来“包住可能出事的代码”


2、✅ B. catch 块可以有多个,处理不同类型的异常(正确)

(1)🧸 故事讲解

一个接球场:

  • 有的球是int 球

  • 有的球是string 球

  • 有的球是double 球

try { ... } catch (int e) { ... } catch (double e) { ... } catch (...) { ... }

(2)📌 结论

✔ 可以写多个catch
✔ 谁先匹配谁先接


3、✅ C. throw 语句用于抛出异常(正确)

(1)🧸 理解

throw 42;

意思是:

👉 “我发现问题了,把问题丢出去!”


(2)📌 throw 的作用

✔ 抛异常
✔ 非常明确、直接


4、❌ D. 所有异常都必须被捕获,否则程序会崩溃(错误)

🚨 这是本题的“陷阱选项”!


四、为什么 D 是错的?

1、❌ 错误理解

“只要 throw 了,没有 catch,程序一定马上崩溃”


2、✔ 正确理解

1️⃣异常可以不被捕获
2️⃣是否崩溃,取决于运行环境和异常类型
3️⃣ 有些异常会被系统处理
4️⃣ 有些会导致程序终止,但这 ≠ 必须捕获


3、🧸 举个例子

int main() { throw 100; }
  • 没有 catch

  • 程序结束

  • 但不是“语法错误”

  • 而是异常未处理


4、📌 在考试中怎么理解?

❗题目说的是
“必须被捕获”
👉 这个说法太绝对了,所以是错的


五、给同学们的异常处理四句话口诀 🧠

🎯
try 包危险,
throw 来丢球,
catch 来接球,
异常不一定要接。


六、这道题的考点是什么?🎓

  • 你是否理解:

    • try / catch / throw 的分工

  • 你是否能识别:

    • “绝对化说法”是陷阱


七、考试一眼秒杀技巧 👀

看到异常处理题:

1️⃣ 找try / catch / throw的定义
2️⃣ 看选项有没有“必须 / 所有 / 一定”
3️⃣优先选它是错的


八、C++ 捕捉异常【标准模板】

#include <iostream> using namespace std; int main() { try { // ========================= // 1️⃣ try 块 // ========================= // 把“可能出问题的代码”放在这里 // 如果这里发生异常,就会跳到 catch 去处理 int a, b; cin >> a >> b; if (b == 0) { // 主动抛出异常(这里抛出一个 int 类型的异常) throw 0; } // 如果没有异常,这行代码会正常执行 cout << "结果是:" << a / b << endl; } catch (int e) { // ========================= // 2️⃣ catch 块(接 int 类型异常) // ========================= // 如果 try 中 throw 了 int 类型异常 // 程序就会来到这里 cout << "错误:除数不能为 0!" << endl; } catch (double e) { // ========================= // 3️⃣ 另一个 catch(接 double 类型异常) // ========================= // 如果 throw 的是 double 类型,就会进这里 cout << "捕获到 double 类型异常:" << e << endl; } catch (...) { // ========================= // 4️⃣ 万能 catch // ========================= // 不管抛出什么类型的异常 // 前面都没接住,就到这里 cout << "发生了未知错误!" << endl; } // ========================= // 5️⃣ 程序可以继续执行 // ========================= cout << "程序正常结束。" << endl; return 0; }

http://www.jsqmd.com/news/268964/

相关文章:

  • day09-Dify介绍和虚拟机安装
  • 记录给rk3506编译CH34X驱动的小曲折
  • 英文文献的研读与分析方法探讨
  • 告别课程论文 “凑字数” 魔咒!虎贲等考 AI:一键拿捏高分论文通关秘籍
  • 爆肝7天整理!智能体(Agent)开发必学三大核心能力,让你的AI不再“智障“!
  • Git 进阶技巧实战:从协作规范到问题排查+Git 核心命令速查表
  • ai搜索文献:智能技术在学术文献检索与分析中的应用研究
  • 【AI开发干货】大模型搜索Agent架构演进:从Planner到ROMA,小白也能上手的AI技术指南!
  • 传统问卷设计 VS 虎贲等考 AI:3 天工作量压缩到 30 分钟的科研效率革命
  • 数据不会说话?虎贲等考 AI 让论文实证分析秒变 “硬核加分项”
  • AI新风口:GraphRAG多模态杀疯了!小白也能秒会的黑科技,一张图搞定文本+图像+音频,CSDN首发干货!
  • 屏幕参数藏玄机,视觉体验不止于“清晰”
  • 告别科研绘图内卷!虎贲等考 AI 一键生成顶刊级学术美图
  • 汇编语言全接触-97.指令动态执行加密法
  • RAG系统卡成PPT?资深开发者亲授反向调优技巧,小白也能秒变大神!
  • Wi-Fi 6路由器技术成熟度解析:它究竟“新”在哪里?
  • 大模型‘翻车‘救星!RAG技术让AI回答不再‘一本正经地胡说八道‘,小白5分钟入门指南
  • 开题报告别再瞎写!虎贲等考 AI:30 分钟搞定导师都夸的研究蓝图
  • 深度解析 XSS 攻击:原理、分类、危害与全方位防御方案
  • 震惊!90%的AI Agent项目都做错了!资深开发者揭秘构建智能体的正确姿势,小白也能上手[特殊字符]
  • PHP如何操作文件和目录?
  • 【数字信号去噪】基于matlab吕佩尔狐算法优化变分模态分解RFO-VMD数字信号去噪(优化K值 alpha值 综合指标 适应度函数包络熵)【含Matlab源码 14994期】
  • 【SPIE出版】2026年机器学习与大模型国际学术会议(ICMLM 2026)
  • 一步API保姆级指南:国内无缝接入Gemini 3.0 Pro(附代码/工具配置)
  • 【数字信号去噪】改进的灰狼算法和条件重初始化策略模型无主动噪声控制【含Matlab源码 15001期】
  • 【2026年精选毕业设计:智能校园二手交易平台(含论文+源码+PPT+开题报告+任务书+答辩讲解)】
  • 【ACM出版】2026年大数据与智能制造国际学术会议(BDIM 2026)
  • 建筑施工扬尘监测仪厂家:金叶仪器技术解析与现场应用实践指南
  • 人工智能AI的100问?之19-智能体(Agent)
  • ET6037S多通道(18通道LED驱动芯片)实现128级精密调光芯片解析