GESP 2024年12月_C++八级试卷

从PDF导入:GESP 2024年12月_C++八级试卷

C++ 180分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
小杨家响应国家"以旧换新"政策,将自家的汽油车置换为新能源汽车,正在准备自编车牌。自编车牌包括5位数字或英文字母,要求第5位必须是数字,前4位中可以有最多1位英文字母。英文字母必须是大写,而且不能是O 或I(因为容易与数字0或1混淆)。请问自编车牌共有多少种可能性?( )。
A. 100,000
B. 1,060,000
C. 1,360,000
D. 1,460,000
第2题 中级 2.0分 单选
新年到,四家人在一起聚会。其中两家有三口人,另外两家有两口人。现在要安排大家在一张十人圆桌坐下,要求一家人必须相邻就座。由于有"主座"的习俗,每个座位都被认为是不同的。请问共有多少种就座方案?( )。
A. 8640
B. 6912
C. 144
D. 60
第3题 中级 2.0分 单选
下面关于C++类继承的说法,错误的是( )。
A. 一个类可以继承多个类。
B. 一个类可以被多个类继承。
C. 一个类可以继承另一个类的子类。
D. 抽象类必须被至少一个类继承,否则会编译错误。
第4题 中级 2.0分 单选
使用邻接表表达一个简单有向图,图中包含v个顶点、e条边,则该出边表中边节点的个数为( )。
A. v×(v-1)
B. v×v
C. 2×e
D. e
第5题 中级 2.0分 单选
以下将二维数组作为参数的函数声明,哪个是符合语法的?( )
A. void Bubble(int a[10][], int m);
B. void Bubble(int a[][], int n, int m);
C. void Bubble(int (*a)[20], int n);
D. void Bubble(int *a[20], int n);
第6题 中级 2.0分 单选
已知两个点A、B在平面直角坐标系下的坐标分别为(xa, ya)和(xb, yb),并分别定义变量double xa, ya, xb, yb;存储坐标。假设直线AB 的斜率存在,下列哪个表达式可以用来表达它?( )。
A. (xa-xb)/(ya-yb)
B. (xa-xb)/(yb-ya)
C. (ya-yb)/(xa-xb)
D. (ya-yb)/(xb-xa)
第7题 中级 2.0分 单选
二项式(2+y)⁶的展开式中2³y³项的系数是( )。
A. 6
B. 15
C. 160
D. 120
第8题 中级 2.0分 单选
以下关于动态规划的说法中,错误的是( )。
A. 动态规划方法有递推和递归两种实现形式。
B. 递归实现动态规划方法的时间复杂度总是不低于递推实现。
C. 动态规划方法将原问题分解为一个或多个相似的子问题。
D. 动态规划方法通常能够列出递推公式。
第9题 中级 2.0分 单选
在下面的程序中,使用整数表示一种组合。整数二进制表示的某一位为1,表示该位对应的数被选中。横线处应填入的是( )。

int intlow2(int c) {
return ________; // 在此处填入选项
}

A. (c-1)^c
B. ((c-1)^c)+1
C. ((c-1)^c)>>1
D. (((c-1)^c)+1)>>1
第10题 中级 2.0分 单选
下面程序的输出为( )。

A. 174
B. 447
C. 816
D. 4096
第11题 中级 2.0分 单选
下面最长公共子序列程序中,横线处应该填入的是( )。

for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i] == b[j])
dp[i+1][j+1] = dp[i][j] + 1;
else
________________;
}
}

A. dp[i+1][j+1]=dp[i][j+1]+dp[i+1][j]
B. dp[i+1][j+1]=MIN(dp[i][j+1],dp[i+1][j])
C. dp[i+1][j+1]=MAX(dp[i][j+1],dp[i+1][j])
D. dp[i+1][j+1]=MAX(dp[i][j+1],dp[i+1][j])+1
第12题 中级 2.0分 单选
下列Dijkstra算法中,横线处应该填入的是( )。

A. dis[e->out]=dis[minv]+e->len
B. dis[e->out]=MIN(dis[e->out],dis[minv]+e->len)
C. dis[e->out]=MAX(dis[e->out],dis[minv]+e->len)
D. dis[minv]=MIN(dis[minv],dis[e->out]+e->len)
第13题 中级 2.0分 单选
假设图graph中顶点数v、边数e,上题程序的时间复杂度为( )。
A. O(e)
B. O(v²)
C. O(v+e)
D. O(elogv)
第14题 中级 2.0分 单选
下面的快速排序程序中,两处横线处分别应填入的是( )。

A. a, pivot 和 a+pivot+1, n-pivot-1
B. a, pivot-1 和 a+pivot, n-pivot
C. a, pivot 和 a+pivot, n-pivot
D. a+1, pivot-1 和 a+pivot+1, n-pivot-1
第15题 中级 2.0分 单选
上题程序的时间复杂度为( )。
A. O(n)
B. O(n²)
C. O(nlog²n)
D. O(nlogn)
第16题 中级 2.0分 判断
表达式'3'+'5'的结果为'8',类型为char。
T. 正确
F. 错误
第17题 中级 2.0分 判断
在C++语言中,可以在函数内定义结构体,但该结构体类型只能在该函数内使用。
T. 正确
F. 错误
第18题 中级 2.0分 判断
对n个元素的数组进行排序,快速排序和归并排序的平均时间复杂度都为O(nlogn)。但快速排序存在退化情况,使得时间复杂度升高至O(n²);归并排序需要额外的空间开销。
T. 正确
F. 错误
第19题 中级 2.0分 判断
二维数组的最后一维在内存中一定是连续的,但第一维在内存中可能不连续。
T. 正确
F. 错误
第20题 中级 2.0分 判断
使用math.h或cmath头文件中的函数,表达式log(1000)的结果类型为double、值约为3。
T. 正确
F. 错误
第21题 中级 2.0分 判断
你有三种硬币,分别面值2元、5元和7元,每种硬币都有足够多。买一本书需要27元,则有8种硬币组合。
T. 正确
F. 错误
第22题 中级 2.0分 判断
使用哈希函数f(x)=x%p建立键值为int类型的哈希表,只要p取小于等于哈希表大小的素数,可保证不发生碰撞。
T. 正确
F. 错误
第23题 中级 2.0分 判断
杨辉三角中的第n行、第m项,即为将二项式(a+b)^n展开后a^(n-m)b^m项的系数。
T. 正确
F. 错误
第24题 中级 2.0分 判断
判断图是否连通,可以通过广度优先搜索实现。
T. 正确
F. 错误
第25题 中级 2.0分 判断
要求解一元二次方程x²+ax+b=0,需要先判断表达式a²-4b≥0是否为真。
T. 正确
F. 错误
第26题 中级 25.0分 编程
树上移动

时间限制:1.0s 内存限制:512.0MB
小杨有一棵包含n个节点的树,其中节点的编号从1到n,每个节点的颜色要么是白色要么是黑色。
小杨可以任意选择节点s和节点t并从节点s出发移动到节点t,移动过程中小杨不能够经过重复节点。
小杨希望自己在至多经过k个黑色节点的前提下,经过的总节点数尽可能多,请你帮小杨选择经过最多的节点数是多少。

【输入格式】
第一行包含两个正整数n,k,代表节点数量和至多经过的黑色节点数。第二行包含n个正整数a₁,a₂,...,aₙ,代表节点颜色,0为白色,1为黑色。之后n-1行,每行包含两个正整数uᵢ,vᵢ,代表存在一条连接节点uᵢ和vᵢ的边。
【输出格式】
输出一个正整数,代表最多经过的节点数。
对于所有测试点,保证1≤n≤10⁵,0≤k≤n。
第27题 中级 25.0分 编程
排队

时间限制:1.0s 内存限制:512.0MB
小杨所在班级共有n位同学,依次以1,2,...,n标号。这n位同学想排成一行队伍,其中有些同学之间关系非常好,在队伍里需要排在相邻的位置。
具体来说,有m对这样的关系(m是一个非负整数)。当m≥1时,第i对关系(1≤i≤m)给出aᵢ,bᵢ,表示排队时编号为aᵢ的同学需要排在编号为bᵢ的同学前面一位。
现在小杨想知道总共有多少种排队方式。由于答案可能很大,你只需要求出答案对10⁹+7取模的结果。

【数据测试】对于所有测试点,保证1≤n≤10⁵,0≤m≤10⁵。

【输入格式】
第一行,两个整数n,m。接下来m行,每行两个整数aᵢ,bᵢ,表示一对关系。
【输出格式】
一行,一个整数,表示答案对10⁹+7取模的结果。
💬