| 759 |
25. 你的侦察兵到达了一个格子,步数是 3 步。他同时发现了前面的格子和右边的格子。请问这两个新格子的步数分别是多少?( ) A. 都是 3 步 B. 都是 4 步 C. 一个 … |
➖
|
单选题 |
C++ |
2 |
BFS,步数,相同层 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 758 |
24. 在写代码时,为了记住每个格子的坐标 `x`、`y` 和到达这里的步数 `step`,我们通常会把这三个变量打包成一个( )放到队列里。 A. `struct`(结构体) B. `string`(字符串) C. `char`(字符) D. `double`(小数) |
➖
|
单选题 |
C++ |
2 |
BFS,struct,结构体 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 757 |
23. 如果你现在的格子是从起点走了 5 步到达的,那么你发现的下一个新格子,它的步数应该是多少?( ) A. 5 步 B. 4 步 C. 6 步 D. … |
➖
|
单选题 |
C++ |
2 |
BFS,步数传递 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 756 |
**【第四关:最短步数的奥秘】** 22. BFS 能找到最短路径的根本原因在于它的扩展规律是( ) A. 按步数从小到大:先走完所有 1 步能到的,再走所有 2 步能到的... B. 按步数从大到小 C. 随机挑步数走 … |
➖
|
单选题 |
C++ |
2 |
BFS,最短路径,按层扩展 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 755 |
21. 假设迷宫全是可以走的空地,起点在 `(0,0)`。经过 1 趟"扩散"(步数为1),哪些格子会被加入队列?( ) A. 只有 `(1,1)` B. `(0,1)` 和 `(1,0)` C. `(2,2)` … |
➖
|
单选题 |
C++ |
2 |
BFS,扩散,步数1 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 754 |
20. 迷宫中遇到障碍物(比如墙壁标记为 `1`),当 BFS 准备把它加入队列时应该怎么做?( ) A. 把墙壁炸掉 B. 直接把它加进队列 C. 忽略它,绝不加入队列 D. 把墙变成起点 |
➖
|
单选题 |
C++ |
1 |
BFS,障碍物,墙壁 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 753 |
19. 在编程时,我们经常用 `int dx[4] = {-1, 1, 0, 0};` 和 `int dy[4] = {0, 0, … |
➖
|
单选题 |
C++ |
2 |
BFS,方向数组 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 752 |
18. 假设地图是一个二维数组 `a[x][y]`,起点坐标是 `(0, 0)`。如果我们要向上走,行坐标 `x` 通常会( ) A. 加 1 B. 减 1 C. … |
➖
|
单选题 |
C++ |
2 |
BFS,坐标,方向 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 751 |
17. 在二维数组地图中,除了不能走回头路,我们还要判断一个格子能不能走,必须满足( ) A. 它是墙壁 B. 它在地图边界之外 C. 它在地图边界之内,且不是墙壁,且没被访问过 D. 只要没访问过就行,哪怕在地图外面 |
➖
|
单选题 |
C++ |
1 |
BFS,边界判断,障碍物 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 750 |
16. 正确的做法是:当一个新格子被( )时,我们就要立刻把它标记为"已访问过"(比如 `vis[x][y] = 1`)。 A. 打印出来 B. 加入队列 C. 离开队列 D. 变成墙壁 |
➖
|
单选题 |
C++ |
1 |
BFS,visited,入队即标记 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 749 |
15. 如果我们不用 `visited` 数组做标记,会发生什么可怕的事情?( ) A. 格子会在队列里进进出出,永远搜不完,导致死循环 B. 马上就能找到终点 C. 电脑速度变快两倍 D. 什么都不会发生 |
➖
|
单选题 |
C++ |
1 |
BFS,死循环,visited |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 748 |
**【第三关:地图规则与"防迷路"标记】** 14. 在迷宫里走,最怕的事情是"原地转圈圈"。为了防止 BFS 走回头路,我们必须使用一个什么神器?( ) A. `visited` 数组(访问标记数组) B. 指南针 C. 魔法棒 D. 随机数 |
➖
|
单选题 |
C++ |
1 |
BFS,visited,标记 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 747 |
13. 在 C++ 编程中,要想拿出队列 `q` 最前面的元素,我们使用的代码是( ) A. `q.back()` B. `q.push()` C. `q.pop()` D. `q.front()` |
➖
|
单选题 |
C++ |
2 |
BFS,C++,q.front() |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 746 |
12. 如果一个迷宫根本没有出口(死路一条),BFS 最终会怎样?( ) A. 电脑会爆炸 B. 程序会一直死循环运行下去 C. 队列最终会变空,然后程序安全结束,告诉你"找不到路" D. 队列会变得无限大 |
➖
|
单选题 |
C++ |
1 |
BFS,无解,空队列 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 745 |
11. 迷宫寻路什么时候结束?( ) A. 当从队列里拿出的格子刚好是"终点"时 B. 队列里有 10 个格子时 C. 运行了 1 分钟后 D. 刚刚把起点放进队列时 |
➖
|
单选题 |
C++ |
1 |
BFS,终点,终止条件 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 744 |
10. 当我们从队列里拿出一个格子,发现它的"上、下、左、右"有可以走的新格子时,我们应该( ) A. 把这些新格子扔掉 B. 把这些新格子加入队列的尾部,让它们排队等候探索 C. 把这些新格子塞到队列的最前面 D. 立刻停止程序 |
➖
|
单选题 |
C++ |
1 |
BFS,队列,入队 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 743 |
9. 在 BFS 的大循环中,我们每次从队列里拿出( ),去观察它的四周。 A. 队尾的元素(最后一个排队的) B. 队首的元素(最前面排队的) C. 队列中间的元素 D. 队列里所有的元素 |
➖
|
单选题 |
C++ |
1 |
BFS,队列,队首 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 742 |
8. 游戏刚开始时,我们要把什么东西第一个放进队列里?( ) A. 迷宫的终点 B. 随便一个格子 C. 迷宫的起点 D. 迷宫里的墙壁 |
➖
|
单选题 |
C++ |
1 |
BFS,队列,起点 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 741 |
7. 为什么 BFS 必须用"队列"?因为队列的规则是( ),正好符合"先看到的格子先去探索"。 A. 后进先出 B. 随便进出 C. 先进先出 D. 只进不出 |
➖
|
单选题 |
C++ |
1 |
BFS,队列,FIFO |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|
| 740 |
**【第二关:队列大显身手】** 6. 要实现 BFS 这个"水波纹魔法",我们必须请出哪个数据结构来帮忙?( ) A. 栈(Stack) B. 队列(Queue) C. 变量(Variable) D. 字符串(String) |
➖
|
单选题 |
C++ |
1 |
BFS,队列,数据结构 |
BFS测验 |
2026-05-19 00:03 |
✏️
🗑️
|