🌟 第 1 题
(1)以下代码能正确初始化指针。
int a = 5; int *p = a;❌判断结果:错
(2)🧸 故事讲解:钥匙和房子 🏠🔑
a = 5
👉 房子里有 5 个糖果p是一把钥匙但是你写的是:
int *p = a;意思是:
👉 用“糖果数量”当地址?!
这是不对的 ❌
(3)✅ 正确写法应该是
int *p = &a;(4)🧠 小朋友口诀
👉指针要地址,要加 &
🌟 第 2 题
(1)执行下面代码将输出 11。
int x = 10; void f() { int x = x + 1; cout << x << endl; }❌判断结果:错
(2)🧸 故事讲解:影子变量 👻
在函数f()里:
int x = x + 1;这是在说:
👉 重新定义一个x,用这个“还没出生的 x”,给自己加 1
⚠️ 这是未定义行为!
(3)🚫 不是 11,也不是 任何确定的值
(4)🧠 小朋友口诀
👉 在函数中,创建变量,未赋初值,是未定义行为,无法预测
🌟 第 3 题
(1)以下 C++ 代码合法。
struct Student { string name; int age; float score; }; Student* students = new Student[20];✅判断结果:对
(2)🧸 故事讲解:建一个学生班级 🏫
Student:学生模板new Student[20]:
👉 创建20 个学生
(3)🧠 这是 使用指针,创建数组的正确写法
✔ 合法
✔ 常见
✔ Student* students =newStudent[20];new是新开一个。
(4)🧠 记忆口诀
👉new + 类型[数量] = 一排对象
🌟 第 4 题
(1)执行下面代码将输出 10。
void func(int* p) { *p = 10; } int a = 5; func(&a); cout << a;✅判断结果:对
(2)🧸 故事讲解:
a = 5:盒子里 5 个糖&a:把盒子地址给函数*p = 10:
👉 直接改盒子里的糖果数量
(3)🎯 输出结果
10(4)🧠 记忆口诀
👉指针参数给地址,函数就能修改原变量的值
🌟 第 5 题
(1)二维数组传参,函数参数写成int arr[][4]是错误的。
❌判断结果:错
(2)🧸 故事讲解:书架 📚
int arr[3][4];行数:可以不写
列数:必须写!
(3)✅ 正确写法
void f(int arr[][4], int rows)(4)🧠 为什么?
因为编译器需要知道:
👉每一行多宽
(5)🧠 记忆口诀
👉二维数组传参,列数不能省,行数可以省
🌟 第 6 题
(1)递推是在给定初始条件下,已知前一项求后一项的过程。
✅判断结果:对
(2)🧸 故事讲解:接力跑 🏃♂️🏃♀️
第 1 个人知道
第 2 个靠第 1 个
第 3 个靠前两个……
这就是递推
(3)📌 例子:斐波那契
f[n] = f[n-1] + f[n-2];(4)🧠 记忆口诀
👉 前人栽树,后人乘凉
👉 递推算法,怎么算
👉从前向后,逐步来推算
🌟 第 7 题
(1)虽然插入排序是 O(n²),但小数据下很受欢迎。
✅判断结果:对
(2)🧸 故事讲解:整理几张扑克牌 🃏
5 张牌:插入排序很快
10000 张牌:就慢了
(3)🎯 原因
操作简单
常数小
小数据很快
(4)🧠 记忆口诀
👉数据小,插入好,移动单元比较少
🌟 第 8 题
(1)冒泡排序一轮后结果是{4,1,3,1,2,5}。
❌️判断结果:错误
(2)🧸 故事讲解:气泡往上冒 🫧
原数组:
4 1 3 1 5 2一轮冒泡(最大往后):
1 3 1 4 2 5(3)👉 “冒泡排序的每一轮”是怎样换?
一轮冒泡排序 = 从左到右,相邻元素两两比较一次
⚠️ 注意关键词:
相邻
一次一格地比
不是“直接把最大换到最后”,
而是——一步一步冒过去。
(4)“冒泡排序三句话口诀”🫧
1️⃣只能比相邻
2️⃣一步一步换
3️⃣一轮结束,最大的移到最后面
🌟 第 9 题
(1)以下代码只能捕获 int 类型异常。
int main() { try { throw 42; } catch (...) { cout << "Caught" << endl; } return 0; }❌️判断结果:错误
(2)🧸 故事讲解:万能接球手 ⚾
catch(...)
👉是万能接球球所有类型都能接
(3)🧠 记忆口诀
👉catch 参数写啥,只抓啥
👉catch (...)是万能接球手,所有没写的类型,它全包
🌟 第 10 题
(1)以下代码将 Hello 写入文件 data.txt。
ofstream file("data.txt"); cout << "Hello"; file.close();❌判断结果:错
(2)🧸 故事讲解:写错本子 📘
cout:写到屏幕file:是程序中创建的 ofstream 对象,它可以写到文件"data.txt"里
(3)❌ 错在哪里?
cout << "Hello"; // ❌ 写屏幕✅ 正确写法
file << "Hello";(4)🧠 记忆口诀
👉创建 ofstream 对象并打开文件,使用对象 与
<<写入内容是关键!