

第 1 题
1、题目:
函数是 C++ 中的核心概念,用于封装可重用的代码块。
2、🏭故事:程序工厂里的机器
(1)在程序王国里,有一座 机器工厂。
(2)每一台机器都有名字,比如:
int add(int a,int b)
{
return a+b;
}
(3)这台机器叫:
add
(4)功能:
两个数相加
(5)只要你需要加法,就可以再用这台机器。
3、思考
(1)函数的作用就是:
把一段代码封装起来
可以反复使用
(2)例如:
排序函数
求最大值函数
打印函数
4、结论
题目说:
函数用于封装可重用代码
完全正确。
✅ 答案:对
第 2 题
1、题目:
在 C++ 中,函数的返回类型可以省略,默认为 int。
2、🧠故事:函数的"身份证"
(1)每个函数都要有 身份证。
(2)比如:
int add(int a,int b)
(3)这里:
int
就是返回类型。
(4)意思是:
函数最后会返回一个整数
3、在 C++ 里能不能省略?
(1)早期 C语言 曾经允许:
默认返回 int
但在现代 C++ 中是绝对不允许的。
(2)例如:
add(int a,int b)
(3)编译器会说:
错误!
不知道返回类型
4、结论
函数的返回类型不可以省略
❌ 答案:错
第 3 题
1、题目:
结构体的成员默认是 public 访问权限。
2、🏠故事:结构体小房子
(1)结构体像一座房子:
struct Person
{
string name;
int age;
};
(2)房子里面有两个成员:
name
age
3、谁可以访问?
在 C++ 里:
(1)struct 默认
public
(2)class 默认
private
4、举例
Person p;
p.name = "Tom";
完全合法。
5、结论
结构体默认就是 public。
✅ 答案:对
第 4 题
1、题目:
int arr[4] = {0,1,2,3};
int* p = arr;
p += 1;
指针 p 的值是 1。
2、📦故事:数组小盒子
(1)数组:
arr = [0,1,2,3]
(2)内存地址是:
arr[0] → 0x7ffee4065820
arr[1] → 0x7ffee4065824
arr[2] → 0x7ffee4065828
(3)p = arr
意思是:
p 指向 arr[0]
(4)p += 1
指针移动一格。
变成:
p → arr[1]
也就是地址:
0x7ffee4065824
3、重点
p 的值是 地址,不是数组内容。
不是:
1
而是:
arr[1] 的地址
4、结论
题目说:
p 的值不是 1
*p 的值 是 1
❌ 答案:错
第 5 题
1、题目:
二维数组作为函数参数时,必须显式指定所有维度大小。
2、🧱故事:大楼坐标
(1)二维数组像楼房:
行 × 列
(2)例如:
int arr[3][4];
(3)如果作为函数参数:
void f(int arr[][4])
这里只写:
列数
就够了。
3、为什么?
(1)编译器需要知道:
每一行有多少元素
行数可以不写。
(2)例如:
void f(int arr[][4])
是合法的。
4、结论
题目说:
二维数组作为函数参数时,必须显式指定所有维度的大小。
❌ 答案:错
第 6 题
1、题目:
递推是一种通过已知初始值和递推公式逐步求解目标值的算法。
2、🐰故事:兔子繁殖
(1)假设兔子数量:
F1 = 1
F2 = 2
(2)之后:
F3 = F1 + F2
F4 = F2 + F3
(3)规律:
Fn = Fn-1 + Fn-2
3、递推三要素
1️⃣ 初始值
2️⃣ 递推公式
3️⃣ 循环计算
例如:
for(int i=3;i<=n;i++)
f[i]=f[i-1]+f[i-2];
4、结论
题目描述完全正确。
✅ 答案:对
第 7 题
1、题目:
冒泡排序最坏情况下复杂度是 O(n²)。
2、🫧故事:气泡排序
(1)数组:
5 4 3 2 1
(2)第一轮:
4 3 2 1 5
(3)第二轮:
3 2 1 4 5
(4)第三轮:
2 1 3 4 5
(5)第四轮:
1 2 3 4 5
(6)比较次数:
(n-1)+(n-2)+...+1
(7)数学公式:
n(n-1)/2
(8)复杂度:
O(n²)
3、结论
题目说法正确。
✅ 答案:对
第 8 题
1、题目:
插入排序在最好情况下时间复杂度是 O(n^2)。
2、📚故事:排好队的同学
(1)假设已经排好序:
1 2 3 4 5
(2)插入排序检查时:
只看一眼
就发现已经有序。
(3)比较次数:
n-1
(4)复杂度:
O(n)
3、结论
插入排序在最好情况下时间复杂度不是 O(n^2),而是O(n)。
❌️ 答案:错误
第 9 题
1、题目:
数组
4 3 1 5 2
第一轮选择排序后:
{1,4,3,5,2}
2、🏆故事:找最小冠军
(1)选择排序规则:
找到最小
放到最前
(2)原数组:
4 3 1 5 2
(3)最小:
1
(4)交换:
1 3 4 5 2
3、结论:
题目说:
1 4 3 5 2
明显不对。
❌ 答案:错
第 10 题
1、题目:
未捕获异常会调用 std::terminate 终止程序。
2、🚨故事:程序警报系统
(1)如果程序发生异常:
throw runtime_error("error");
(2)程序会寻找:
catch
来处理。
(3)如果没有 catch:
程序会执行:
std::terminate()
程序直接结束。
3、结论
题目说法正确。
✅ 答案:对
10道判断题考了5大知识点:
函数
结构体
指针
排序
复杂度
记住口诀:
函数必须有类型
结构默认是公开
指针存的是地址
排序复杂度要会
异常终止要记牢
