GESP2026年6月认证C++七级( 第二部分判断题(1-10))精讲
第1题 三角函数默认使用角度制。
答案:错误❌
1、但根据 C++ 标准库:
sin(90)中的90表示90弧度,不是90度。
2、例如:
#include <iostream> #include <cmath> using namespace std; int main() { cout << sin(90); }输出不是
1而是
0.893997...因为
90(弧度)≈5157°不是90°。
3、输入角度转弧度的方法:
参考程序:
#include <iostream> #include <cmath> using namespace std; int main() { const double PI = acos(-1); double degree; cin >> degree; double rad = degree * PI / 180.0; cout << rad << endl; return 0; }4、七级考试记住
所有<cmath>三角函数默认使用弧度制。
第2题
pow(2,10),因为参数都是int,所以返回值也是int。
答案:
错误 ❌️
1、有的同学容易被"参数类型"骗了。
(1)来看:
pow(2,10)虽然
2 10都是int。
(2)但是
pow()函数规定:
返回值始终是
double(3)例如:
double x=pow(2,10);完全正确。
(4)所以
这句话错误。
2、为什么?
(1)因为
pow(2.1,3.8)也合法。
如果返回int,
很多小数都会丢失。
(2)因此数学库统一规定:
pow()返回double。
第3题
01背包一维优化时,从小到大枚举容量也能保证每件物品最多选择一次。
答案:
错误 ❌️
1、这一题是经典背包问题。
假设只有一个物品
重量
2价值
5容量
62、如果正着循环
for(c=2;c<=6;c++)那么
(1)第一次更新
dp[2]=5(2)随后
更新
dp[4]会使用
dp[2]于是
同一个物品
又放了一遍。
(3)继续
dp[6]又放第三遍。
(4)最后
变成
15(5)实际上
一件物品
用了三次。
(6)已经不是01背包。
而是
完全背包。
3、所以01背包必须
for(c=W;c>=w;c--)倒着更新。
第4题
开放定址法即使哈希函数很好,也仍可能发生冲突。
答案:
正确 ✅️
1、为什么?
(1)假设哈希函数
x%11(2)插入
11 22 33它们都会来到
0(3)于是
冲突了。
再好的哈希函数
也不能保证
所有数字
都映射不同。
2、所以
开放定址法
是可能冲突的。
第5题
DFS访问顺序与邻接点枚举顺序无关。
答案:
错误 ❌️
1、来看
A / \ B C(1)如果
先枚举B
再枚举C
(2)DFS
就是
A ↓ B ↓ C(3)如果
先枚举C
再枚举B
(4)DFS就是
A ↓ C ↓ B(5)访问顺序
完全不同。
2、所以
DFS结果
与邻接点遍历顺序密切相关。
3、什么时候是唯一?
只有:
邻接点顺序固定。
例如
全部按编号升序。
第6题
泛洪算法递归DFS,大地图可能爆栈。
答案:
正确 ✅️
1、有的同学写过:
dfs(x,y);感觉很好用。
2、但是
(1)假设地图是
1000×1000如果
整张地图
全都是陆地。
(2)DFS
可能递归
几十万层。
(3)系统栈根本装不下。
于是
程序直接
Runtime Error或者
Stack Overflow3、因此
地图特别大
通常改写成
BFS
或者
非递归DFS。
第7题
哈夫曼树中不存在度为1的结点。
答案:
正确 ✅️
1、为什么?
(1)哈夫曼树每次都是两个结点合并。
(2)例如
A B(3)变成
* / \ A B(4)父节点
一定
有两个孩子。
永远不会
只有一个。
2、因此,哈夫曼树
(1)只有
度0 度2(2)没有
度1这是哈夫曼树的重要性质。
第8题
冒泡排序稳定,选择排序也稳定。
答案:
错误 ❌️
1、冒泡排序是稳定的,但是选择排序不是。
2、考试要记住:
| 排序 | 稳定性 |
|---|---|
| 冒泡 | √ |
| 插入 | √ |
| 归并 | √ |
| 选择 | × |
| 快速 | × |
| 堆排序 | × |
第9题
无权图BFS第一次到达某点,就是最短边数。
答案:
正确 ✅️
1、为什么?
(1)BFS是一层一层扩展。
(2)例如
第0层 起点 ↓ 第1层 ↓ 第2层 ↓ 第3层(3)第一次
走到某个点
一定
经过最少边。
(4)因此
无权图
最短路
就是
BFS。
这是重要的结论。
第10题
DP状态依赖必须提前算出来。
答案:
正确 ✅️
1、例如
(1)数字三角形
dp[i][j]依赖
dp[i-1][j] dp[i-1][j-1](2)那么
上一层
必须先算。
(4)否则
dp[i][j]没有数据。
2、因此
动态规划
必须保证
状态转移方向正确。
3、这也是为什么DP一定要设计
计算顺序(拓扑顺序)
例如:
线性DP:从左到右
网格DP:从上到下、从左到右
区间DP:区间长度从小到大
树形DP:DFS完成子树后回溯
第二部分判断题总结
| 题号 | 答案 | 核心知识点 | 考试重点 |
|---|---|---|---|
| 1 | ❌️ | 三角函数使用弧度制 | 牢记sin()、cos()参数是弧度 |
| 2 | ❌️ | pow()返回double | 不要被参数类型迷惑 |
| 3 | ❌️ | 01背包倒序枚举 | 正序会变成完全背包 |
| 4 | ✅️ | 开放定址法仍可能冲突 | 哈希冲突不可完全避免 |
| 5 | ❌️ | DFS访问顺序 | 受邻接点遍历顺序影响 |
| 6 | ✅️ | Flood Fill 与爆栈 | 大地图优先考虑 BFS 或非递归 DFS |
| 7 | ✅️ | 哈夫曼树性质 | 没有度为1的结点 |
| 8 | ❌️ | 排序稳定性 | 选择排序不稳定 |
| 9 | ✅️ | BFS最短路 | 无权图第一次到达就是最短路径 |
| 10 | ✅️ | 动态规划 | 状态必须按照依赖关系计算 |
把这10道判断题浓缩成考试最容易考的知识点,就是下面这10句话:
三角函数默认使用弧度,不是角度。
pow()、sqrt()、sin()等数学函数大多返回double。01背包一维优化必须倒序枚举容量。
哈希冲突无法完全避免。
DFS访问顺序依赖邻接点的遍历顺序。
递归DFS可能因递归层数过深而导致栈溢出。
哈夫曼树没有度为1的结点。
选择排序不稳定,冒泡排序稳定。
无权图最短路优先使用BFS。
动态规划一定要先计算依赖状态,再计算当前状态。
