GESP 2025年12月_C++六级试卷
从PDF导入:GESP 2025年12月_C++六级试卷
C++
180分钟
总分 100.0
27 题
试卷题目预览
第1题
中级
2.0分
单选
在面向对象编程中,下列关于"虚函数"的描述中,错误的是( )。
第2题
中级
2.0分
单选
执行如下代码,会输出"钢琴:叮咚叮咚"和"吉他:咚咚当当"。这体现了面向对象编程的( )特性。

第3题
中级
2.0分
单选
关于以下代码,说法正确的是( )。(代码中play()不是虚函数)

第4题
中级
2.0分
单选
某文本编辑器把用户输入的字符依次压入栈S。用户依次输入A,B,C,D后,用户按了两次撤销(每次撤销,弹出栈顶一个字符)。此时栈从栈底到栈顶的内容是:( )。
第5题
中级
2.0分
单选
假设循环队列数组长度为N,其中队空判断条件为:front==rear,队满判断条件为:(rear+1)%N==front,出队对应的操作为:front=(fro
第6题
中级
2.0分
单选
以下函数check()用于判断一棵二叉树是否为( )。

第7题
中级
2.0分
单选
以下代码实现了二叉树的( )。

第8题
中级
2.0分
单选
下面代码实现了哈夫曼编码,则横线处应填写的代码是( )。

第9题
中级
2.0分
单选
以下关于哈夫曼编码的说法,正确的是( )。
第10题
中级
2.0分
单选
以下函数实现了二叉排序树(BST)的( )操作。

第11题
中级
2.0分
单选
下列代码实现了树的深度优先遍历,则横线处应填入( )。

第12题
中级
2.0分
单选
给定一棵普通二叉树(节点值没有大小规律),下面代码判断是否存在值为x的结点,则横线处应填入( )。

第13题
中级
2.0分
单选
在二叉排序树(Binary Search Tree, BST)中,假设节点值互不相同。给定如下搜索函数,以下说法一定正确的是( )。

第14题
中级
2.0分
单选
0/1背包(每件物品最多选一次)问题通常可用一维动态规划求解,核心代码如下。则下面说法正确的是( )。

第15题
中级
2.0分
单选
以下关于动态规划的说法中,错误的是( )。
第16题
中级
2.0分
判断
以下代码中,构造函数被调用的次数是1次。

第17题
中级
2.0分
判断
面向对象编程中,封装是指将数据和操作数据的方法绑定在一起,并对外隐藏实现细节。
第18题
中级
2.0分
判断
以下代码能够正确统计二叉树中叶子结点的数量。

第19题
中级
2.0分
判断
广度优先遍历二叉树可用栈来实现。
第20题
中级
2.0分
判断
函数调用管理可用栈来管理。
第21题
中级
2.0分
判断
在二叉排序树(BST)中,若某结点的左子树为空,则该结点一定是整棵树中的最小值结点。
第22题
中级
2.0分
判断
下面的函数能正确判断一棵树是不是二叉排序树(左边的数字要比当前数字小,右边的数字要比当前数字大)。

第23题
中级
2.0分
判断
格雷编码相邻两个编码之间必须有多位不同,以避免数据传输错误。
第24题
中级
2.0分
判断
小杨在玩一个闯关游戏,从第1关走到第4关。每一关的体力消耗如下(下标表示关卡编号):cost=[0,3,5,2,4],其中cost[i]表示到达第i关需要消耗的
第25题
中级
2.0分
判断
假定只有一个根节点的树的深度为1,则一棵有n个节点的完全二叉树,则树的深度为⌊log2(n)⌋+1。
第26题
中级
25.0分
编程
路径覆盖
给定一棵有n个结点的有根树T,结点依次以1~n编号,根结点编号为1。方便起见,编号为i的结点称为结点i。初始时T中的结点均为白色。你需要将T中的若干个结点染为黑色,使得所有叶子到根的路径上至少有一个黑色结点。将结点i染为黑色需要代价c_i,你需要在满足以上条件的情况下,最小化染色代价之和。叶子是指T中没有子结点的结点。
【输入格式】
第一行,一个正整数n,表示结点数量。 第二行,n-1个正整数,其中第i个数表示结点i+1的父结点的编号,保证p_i<i。 第三行,n个正整数c_1~c_n,其中c_i表示将结点i染为黑色所需的代价。
【输出格式】
一行,一个整数,表示在满足所有叶子到根的路径上至少有一个黑色结点的前提下,染色代价之和的最小值。
【样例输入1】 4 1 2 3 5 6 2 3 【样例输出1】 2 【样例输入2】 7 1 1 2 2 3 3 64 16 15 4 3 2 1 【样例输出2】 10 对于所有测试点,保证1≤n≤10^5,1≤c_i≤10^9。
第27题
中级
25.0分
编程
道具商店
道具商店里有n件道具可供挑选。第i件道具可为玩家提升a_i点攻击力,需要c_i枚金币才能购买,每件道具只能购买一次。现在你有k枚金币,请问你最多可以提升多少点攻击力?
【输入格式】
第一行,两个正整数n,k,表示道具数量以及你所拥有的金币数量。 接下来n行,每行两个正整数a_i,c_i,表示道具所提升的攻击力点数,以及购买所需的金币数量。
【输出格式】
输出一行,一个整数,表示最多可以提升的攻击力点数。
【样例输入1】 3 5 99 1 33 2 11 3 【样例输出1】 132 【样例输入2】 4 100 10 1 20 11 40 33 100 99 【样例输出2】 110 对于所有测试点,保证1≤n≤500,1≤k≤250000,1≤a_i≤500,1≤c_i≤500。