🌟 第9题:爬楼梯机器人升级版 🤖
(答案:B = 13)
1、🧙 故事
机器人要爬 6 层楼梯:
(1)规则:
一次可以走 1 步 或 2 步
(2)它问:
👉 “我有多少种走法?”
2、🧠 程序逻辑
if(n <= 2) return n; c = a + b;其实就是:
f(n) = f(n-1) + f(n-2)👉 斐波那契数列!
3、🪜 一步一步算
| 台阶 | 方法数 |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 5 |
| 5 | 8 |
| 6 | 13 |
4、🎉 所以:
climb(6) = 135、✔ 答案:B、13
🌟 第10题:排序的“公平比赛” 🏁
(答案:B)
1、🧙 故事
(1)开始有4个学生:
(90,'A'), (90,'B'), (80,'C'), (90,'D')(2)排序后:
(80,'C'), (90,'A'), (90,'B'), (90,'D')2、🧠 什么是“稳定排序”?
👉 相同分数的人,顺序不能变!
(1)原来:
A 在 B 前,B 在 D 前(2)排序后:
A → B → D(顺序没变)3、🎉 结论:👉 这是稳定排序
✔ 答案:B
🌟 第11题:插入排序搬箱子 📦
(答案:B)
1、🧙 故事
(1)你在整理一排箱子:
5 3 8(2)你拿起 3,往前插:
👉 要把比 3 大的往后挪!
2、🧠 关键条件
while(j >= 0 && a[j] > key)👉 意思是:
“只要前面的比我大,我就往前挤!”
3、📦 举例
5 > 3 → 挪走4、🎉 正确条件:
a[j] > key5、✔ 答案:B.a[j] > key
🌟 第12题:时间复杂度侦探 🕵️
(答案:C)
1、🧙 故事
(1)有两层循环:
for i in n for j in n(2)但有条件:
(i+j)%3==02、🧠 关键点
(1)虽然有条件判断,但:
👉 每次循环都还是执行的!
所以:
n × n = n²(2)🎉 时间复杂度:
O(n²)3、✔ 答案:C
🌟 第13题:文件输出魔法 📜
(答案:B)
1、🧙 故事
你要把:
Welcome to 2026!写进文件 📁
2、🧠 看四种方法
(1)✅ 正确写法
ofstream fout("data.txt"); fout << "Hello";(2)❌ 错误写法(重点!)
ofstream outFile("log.txt"); cout << "Welcome to 2026!";👉 输出到屏幕,不是文件!应该用 outFile。
3、🎉 所以不能实现的是:
✔ 答案:B
🌟 第14题:异常捕获大作战 💥
(答案:B)
1、🧙 故事
(1)程序里:
throw 0;(2)然后:
catch(int)2、🧠 匹配规则
| throw | catch |
|---|---|
| int | catch(int) ✅ |
| char* | catch(const char*) |
3、🎯 执行流程
throw 0 → 被 catch(int) 抓住4、输出:
B5、✔ 答案:B、
🌟 第15题:排行榜冲刺 🏆
(答案:A)
1、🧙 故事
玩家分数变高了,要往前冲!
数组:
[80, 70, 60]玩家变成 75:
👉 要往前挤!
2、🧠 条件应该是:
cur.score > players[i-1].score👉 “我比前一个强,就往前走!”
3、❌ 错误情况
<→ 会往后跑 ❌i < n-1→ 方向错 ❌
4、🎉 正确条件:
i > 0 && cur.score > players[i-1].score5、✔ 答案:A
🧠 考点汇总:
| 题号 | 核心 |
|---|---|
| 9 | 递推(斐波那契) |
| 10 | 稳定排序 |
| 11 | 插入排序 |
| 12 | 时间复杂度 O(n²) |
| 13 | 文件输出 |
| 14 | 异常处理 |
| 15 | 插入调整(类似排序) |