#KS001. 基础算法测试
基础算法测试
一.单选题(每题 2 分,共 30 分)
- 用枚举法解决 “鸡兔同笼问题:头共 35 个,脚共 94 只,求鸡和兔的数量”,以下枚举逻辑最合理的是( )。 {{ select(1) }}
- 枚举鸡的数量x(0~35),兔的数量 y=35-x ,判断 2x + 4y == 94
- 枚举兔的数量y(0~94),鸡的数量 x=35-y ,判断 2x + 4y == 94
- 枚举所有整数x(0-100)和 y(0-100),判断 x+y==35 && 2x+3y == 94
- 枚举脚的总数sum(0~94),判断 sum == 94
- 关于递推算法的描述,正确的是( )。 {{ select(2) }}
- 递推表现为函数自己调用自己
- 递推从已知初值出发,利用递推关系逐步推出后续结果
- 递推只能用于指数复杂度问题
- 递推一定需要回溯
- 下面C++代码是二分法猜数字num的核心代码,为实现该目标,横线处应填写的代码是()。
{{ select(3) }}
- mid > L
- mid < R
- mid > num
- mid < num
- 下面C++代码是高精度加法的核心代码模板,为实现该目标,两段横线处分别应填写的代码是()。
{{ select(4) }}
- c1[i]/10 c1[i]/10
- c1[i]%10 c1[i]/10
- c1[i]%10 c1[i]%10
- c1[i]/10 c1[i]%10
- 下面C++代码是高精度减法的核心代码模板,为实现该目标,两段横线处分别应填写的代码是()。
{{ select(5) }}
- a1[i - 1]-- a1[i] += 10;
- a1[i + 1]-- a1[i] += 10;
- a1[i - 1]++ a1[i] -= 10;
- a1[i + 1]++ a1[i] -= 10;
- 下面C++代码是高精度乘法的核心代码模板,为实现该目标,横线处应填写的代码是()。
{{ select(6) }}
- c1[j + i] = a1[j] * b1[i] + x;
- c1[j] += a1[j] * b1[i] + x;
- c1[j + i] += a1[j] * b1[i] + x;
- c1[j + i] += a1[j] * b1[i];
- 对于入栈序列为a、b、c、d、e、f、g的序列,下列哪个选项不是合法的出栈序列()。 {{ select(7) }}
- a、b、c、d、e、f、g
- a、d、c、b、e、g、f
- a、d、b、c、g、f、e
- g、f、e、d、c、b、a
- 栈和队列最大的特性分别是()。 {{ select(8) }}
- 后进后出 先进先出
- 后进先出 先进后出
- 后进后出 先进后出
- 后进先出 先进先出
- 下面 C++ 代码段执行后,其输出是()。
{{ select(9) }}
- 5 13
- 8 16
- 8 8
- 5 8
- 下面C++代码是用递归求取n的阶乘,为实现该目标,横线处应填写的代码是()。
{{ select(10) }}
- fun(n - 1) * n
- fun(n - 1) + n
- fun(n) * (n - 1)
- fun(n) + (n - 1)
- 一颗包含50个结点的完全二叉树,其叶子结点的数量是多少() {{ select(11) }}
- 20
- 25
- 26
- 24
- 一棵二叉树的先序序列为 ABDHCFGE ,中序序列为 BHDAFGCE ,则其后序序列为()。 {{ select(12) }}
- ABCDFEHG
- ABCDEFGH
- HDBGFECA
- HDBGEFCA
- 一棵二叉树的后序序列为 DGJHEBIFCA ,中序序列为 DBGEHJACIF ,则其先序序列为()。 {{ select(13) }}
- ABCDEFGHIJ
- ABDEGHJCFI
- ABDEGJHCFI
- ABDEGHJFIC
- 在无向图中,所有顶点的度数之和等于()。 {{ select(14) }}
- 图的顶点数
- 图的顶点数的两倍
- 图的边数
- 图的边数的两倍
- 下方给出一个无向图的邻接矩阵,判断该无向图有几条边()。
{{ select(15) }}
- 6
- 5
- 4
- 3
二、判断题(每题 2 分,共 20 分)
- 递推算法中,递推关系式一定是从前往后推导的,不可以从后往前推导。
{{ select(16) }}
- 正确
- 错误
- 二分算法可以应用于无序数组的查找。
{{ select(17) }}
- 正确
- 错误
- 大整数加法的实现中,通常需要将整数按低位到高位的顺序存储在数组中,方便进位处理。
{{ select(18) }}
- 正确
- 错误
- 贪心算法总是能够得到全局最优解,因此在任何场景下都可以优先使用贪心策略。
{{ select(19) }}
- 正确
- 错误
- 栈的特点是“先进后出”,队列的特点是“先进先出”。
{{ select(20) }}
- 正确
- 错误
- 递归函数必须有明确的终止条件,否则会导致栈溢出。
{{ select(21) }}
- 正确
- 错误
- 对于入栈序列为a,b,c,d,e的序列,c,d,a,e,b是合法的出栈序列。
{{ select(22) }}
- 正确
- 错误
- 树的节点数为 n (n >= 1)时,边数一定是 n - 1。
{{ select(23) }}
- 正确
- 错误
- 一棵二叉树的先序序列为ABCDEFHIJK,中序序列为FEDCBAHIJK,则其后序序列为FEDCBHIJKA。
{{ select(24) }}
- 正确
- 错误
- 图的深度优先搜索遍历中,不需要记录节点是否被访问过。
{{ select(25) }}
- 正确
- 错误