GESP 2026年3月_C++六级试卷
从PDF导入:GESP 2026年3月_C++六级试卷
试卷题目预览
下列关于C++中类的描述,正确的是( )。
下列代码中,s1->draw();和s2->draw();输出不同结果的主要原因是( )。

下面的代码在main()中有一行会导致编译错误,请找出来。

游乐园的过山车每次限坐4人,用循环队列管理排队(容量MAX=5,空一格判满)。下面代码执行后,循环队列是否已满?rear的值是多少?

在以下计算机系统应用场景中,最适合使用循环队列的是( )。
在二叉搜索树(BST)中,若中序遍历的序列为{1,2,3,4,5},且先序遍历的第一个序列元素为3,则下列说法正确的是( )。
某二叉树共有10个结点,记为A~J,已知它的先序遍历序列为:A B D H I E C F J G,中序遍历序列为:H DI B E A F J C G,则该二叉树的后序遍历序列是( )。
下列关于树的遍历的说法中,正确的一项是( )。
有 6 个字符,它们出现的次数分别为: {2, 3, 3, 4, 6, 8} ,现在用哈夫曼编码为这些字符编码,最小加权路径长度WPL(每个字符的出现次数 它的编码长度,再把每个字符结果加起来)的值为( )。
对n个不同符号进行哈夫曼编码。若生成的哈夫曼树共有m个结点,则n的值是( )。
关于格雷编码(Gray Code),下列说法正确的是( )。
给定一棵二叉树,采用广度优先搜索(BFS)算法,返回右视图所有节点的值。其中右视图定义为:二叉树的右视图是从树的右侧看过去时可见的节点集合,即右视图中的每个节点

下列关于树的深度优先搜索(DFS)的说法中,正确的是( )。
小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进入两个相邻的房子(即不能同时取相邻两家的糖果)。目标是拿到最多糖果。以下是代码实现,请补全横线。

元宵节晚上,小朋友沿着一条发光石板路前进,每次可向前走 1 块或 2 块石板。动态规划定义如下:dp[i] = dp[i - 1] + dp[i - 2] ,下面关于 dp[i] 的含义最合适的是( )。
下面定义了一个表示二维坐标点的类Point,并提供了一个带参数的构造函数,但第②行Point b;会调用编译器自动生成的默认构造函数,将b.x和b.y被初始化为

C++中的继承支持单继承和多继承,但子类无法直接访问父类的私有成员。
对如下结构的树,执行travel函数,输出结果是1 2 3 4 5。(树结构:根1,左子树2(孩子4,5),右子树3)


若所有字符出现频率相同,则哈夫曼编码一定会得到完全二叉树。
哈夫曼编码是一种变长的前缀编码,在解码时不需要额外的分隔符就能唯一还原,这是因为在哈夫曼树中,任何一个字符的叶子结点都不会成为另一个字符结点的祖先。
在 C++ 中使用一维数组 vector<int> tree 存储按层序遍历的完全二叉树时,若根节点存储在tree[0] ,则对于任意非空节点 tree[i] ,其右孩子(如果存在)必然位于 tree[2 * i + 2]
在C++中使用栈来非递归地实现二叉树的前序遍历时,为了保证遍历顺序正确,在处理完当前结点后,应该先将该结点的左孩子压入栈中,然后再将右孩子压入栈中。
设二叉树共有n个结点,函数preorderTraversal以下代码的时间复杂度为O(n),空间复杂度为O(n)。

下列代码实现了一个0-1背包的一维动态规划代码,内层循环是经典的逆序写法。若将内层循环改成正序遍历(即for (int j = w[i]; j <= W; j+

在动态规划问题中,状态空间相同且没有重复计算的情况下,"状态转移方程+递推"与"递归+记忆化搜索"的时间复杂度通常相同。
选数
给定两个包含n个整数的数组a与b。你需要指定若干下标i_j (1 ≤ j ≤ k)使得以下条件成立:(1) i_1 < i_2 < ... < i_k;(2) 对于任意1 ≤ j < k,i_{j+1} - i_j ≥ b[i_j]。你需要在满足以上条件的前提下最大化∑a[i_j],也即最大化数组a对应下标的整数之和。
第一行,一个正整数n,表示数组长度。 第二行,n个非负整数a_1~a_n,表示数组a。 第三行,n个非负整数b_1~b_n,表示数组b。
一行,一个整数,表示在满足下标条件的前提下,数组a对应下标的整数之和的最大值。
【样例输入1】 4 1 2 3 4 3 3 1 1 【样例输出1】 7 【样例输入2】 6 1 1 4 5 1 4 1 2 3 2 1 0 【样例输出2】 11 对于所有测试点,保证1≤n≤10^5,0≤a_i≤10^9,0≤b_i≤n。
完全二叉树
给定一棵包含n个结点的有根二叉树,结点依次以1~n编号,根结点编号为1。对于结点i,其左儿子的编号记为l_i,右儿子编号记为r_i。特别地,如果左儿子不存在则l_i=0,如果右儿子不存在则r_i=0。树中每个结点都对应一棵以其为根的子树。请你求出给定有根树的所有n棵子树中,有多少棵子树是完全二叉树。
第一行,一个正整数n,表示有根二叉树结点数量。 接下来n行,每行两个正整数l_i,r_i,表示结点i的左儿子编号和右儿子编号。
输出一行,一个整数,表示所有子树中完全二叉树的数量。
【样例输入1】 4 2 3 4 0 0 0 0 0 【样例输出1】 4 【样例输入2】 4 2 3 0 0 4 0 0 0 【样例输出2】 3 对于所有测试点,保证1≤n≤10^5。