当前位置: 首页 > news >正文

CCF编程能力等级认证GESP—C++7级—20250628

CCF编程能力等级认证GESP—C++7级—20250628

  • 单选题(每题 2 分,共 30 分)
  • 判断题(每题 2 分,共 20 分)
  • 编程题 (每题 25 分,共 50 分)
    • 线图
    • 调味平衡

单选题(每题 2 分,共 30 分)

1、 已知小写字母 b 的ASCII码为98,下列C++代码的输出结果是( )。

#include <iostream>
using namespace std;
int main() {char a = 'b' ^ 4;cout << a;return 0;
}
A. b
B. bbbb
C. f
D. 102

正确答案:C

2、 已知 a 为 int 类型变量, p 为 int * 类型变量,下列赋值语句不符合语法的是( )。

A. *(p + a) = *p;
B. *(p - a) = a;
C. p + a = p;
D. p = p + a;

正确答案:C

3、下列关于C++类的说法,错误的是( )。

A. 如需要使用基类的指针释放派生类对象,基类的析构函数应声明为虚析构函数。
B. 构造派生类对象时,只调用派生类的构造函数,不会调用基类的构造函数。
C. 基类和派生类分别实现了同一个虚函数,派生类对象仍能够调用基类的该方法。
D. 如果函数形参为基类指针,调用时可以传入派生类指针作为实参。

正确答案:B

4、下列C++代码的输出是( )。

#include <iostream>
using namespace std;
int main() {int arr[5] = {2, 4, 6, 8, 10};int * p = arr + 2;cout << p[3] << endl;return 0;
}
A. 6
B. 8
C. 编译出错,无法运行。
D. 不确定,可能发生运行时异常。

正确答案:D

5、假定只有一个根节点的树的深度为1,则一棵有N个节点的完全二叉树,则树的深度为( )。

A. ⌊log2(N)⌋+1\lfloor log_2(N) \rfloor + 1log2(N)⌋+1
B. ⌊log2(N)⌋\lfloor log_2(N) \rfloorlog2(N)⌋
C. ⌈log2(N)⌉\lceil log_2(N) \rceillog2(N)⌉
D. 不能确定

正确答案:A

6、对于如下图的二叉树,说法正确的是( )。
在这里插入图片描述

A. 先序遍历是 ABDEC 。
B. 中序遍历是 BDACE 。
C. 后序遍历是 DBCEA 。
D. 广度优先遍历是 ABCDE 。

正确答案:D

7、图的存储和遍历算法,下面说法错误的是( )。

A. 图的深度优先遍历须要借助队列来完成。
B. 图的深度优先遍历和广度优先遍历对有向图和无向图都适用。
C. 使用邻接矩阵存储一个包含 个顶点的有向图,统计其边数的时间复杂度为 。
D. 同一个图分别使用出边邻接表和入边邻接表存储,其边结点个数相同。

正确答案:A

8、一个连通的简单有向图,共有28条边,则该图至少有( )个顶点。

A. 5
B. 6
C. 7
D. 8

正确答案:B

9、以下哪个方案不能合理解决或缓解哈希表冲突( )。

A. 在每个哈希表项处,使用不同的哈希函数再建立一个哈希表,管理该表项的冲突元素。
B. 在每个哈希表项处,建立二叉排序树,管理该表项的冲突元素。
C. 使用不同的哈希函数建立额外的哈希表,用来管理所有发生冲突的元素。
D. 覆盖发生冲突的旧元素。

正确答案:D

10、 以下关于动态规划的说法中,错误的是( )。

A. 动态规划方法通常能够列出递推公式。
B. 动态规划方法的时间复杂度通常为状态的个数。
C. 动态规划方法有递推和递归两种实现形式。
D. 对很多问题,递推实现和递归实现动态规划方法的时间复杂度相当。

正确答案:B

11、下面程序的输出为( )。

#include <iostream>
using namespace std;
int rec_fib[100];
int fib(int n) {if (n <= 1)return n;if (rec_fib[n] == 0)rec_fib[n] = fib(n - 1) + fib(n - 2);return rec_fib[n];
}
int main() {cout << fib(6) << endl;return 0;
}
A. 8
B. 13
C. 64
D. 结果是随机的。

正确答案:A

12、下面程序的时间复杂度为( )。

int rec_fib[MAX_N];
int fib(int n) {if (n <= 1)return n;if (rec_fib[n] == 0)rec_fib[n] = fib(n - 1) + fib(n - 2);return rec_fib[n];
}

A.O(2n)O(2^n)O(2n)
B.O(ϕn),ϕ=5−12O(\phi^n),\phi=\frac{\sqrt{5} - 1}{2}O(ϕn),ϕ=251
C.O(n2)O(n^2)O(n2)
D.O(n)O(n)O(n)

正确答案:D

13、下面 search 函数的平均时间复杂度为( )。

int search(int n, int * p, int target) {int low = 0, high = n;while (low < high) {int middle = (low + high) / 2;if (target == p[middle]) {return middle;} else if (target > p[middle]) {low = middle + 1;} else {high = middle;}}return -1;
}

A.O(nlog(n))O(nlog(n))O(nlog(n))
B.O(n)O(n)O(n)
C.O(log(n))O(log(n))O(log(n))
D.O(1)O(1)O(1)

正确答案:C

14、下面程序的时间复杂度为( )。

int primes[MAXP], num = 0;
bool isPrime[MAXN] = {false};
void sieve() {for (int n = 2; n <= MAXN; n++) {if (!isPrime[n])primes[num++] = n;for (int i = 0; i < num && n * primes[i] <= MAXN; i++) {isPrime[n * primes[i]] = true;if (n % primes[i] == 0)break;}}
}

A.O(n)O(n)O(n)
B.O(nlogn)O(nlogn)O(nlogn)
C.O(nloglogn)O(nloglogn)O(nloglogn)
D.O(n2)O(n^2)O(n2)

正确答案:A

15、下列选项中,哪个不可能是下图的广度优先遍历序列( )。
在这里插入图片描述

A. 1, 2, 4, 5, 3, 7, 6, 8, 9
B. 1, 2, 5, 4, 3, 7, 8, 6, 9
C. 1, 4, 5, 2, 7, 3, 8, 6, 9
D. 1, 5, 4, 2, 7, 3, 8, 6, 9

正确答案:B

判断题(每题 2 分,共 20 分)

1、C++语言中,表达式 9 & 12 的结果类型为 int 、值为 8 。

正确答案:正确

2、C++语言中,指针变量指向的内存地址不一定都能够合法访问。

正确答案:正确

3、对n个元素的数组进行快速排序,最差情况的时间复杂度为O(nlogn)。

正确答案:错误

4、题 一般情况下, long long 类型占用的字节数比 float 类型多。

正确答案:正确

5、 使用 math.h 或 cmath 头文件中的函数,表达式 pow(10, 3) 的结果的值为 1000 、类型为 int 。

正确答案:错误

6、二叉排序树的中序遍历序列一定是有序的。

正确答案:正确

7、无论哈希表采用何种方式解决冲突,只要管理的元素足够多,都无法避免冲突。

正确答案:正确

8、在C++语言中,类的构造函数和析构函数均可以声明为虚函数。

正确答案:错误

9、 动态规划方法将原问题分解为一个或多个相似的子问题,因此必须使用递归实现。

正确答案:错误

10、如果将城市视作顶点,公路视作边,将城际公路网络抽象为简单图,可以满足城市间的车道级导航需求。

正确答案:错误

编程题 (每题 25 分,共 50 分)

线图

【问题描述】
给定由n个结点与m条边构成的简单无向图G,结点依次以1,2,…,n编号。简单无向图意味着G中不包含重边与自环。G的线图L(G)通过以下方式构建:
·

  • 初始时线图L(G)为空。
  • 对于无向图G中的一条边,在线图L(G)中加入与之对应的一个结点。
  • 对于无向图G中两条不同的边(u1,v1),(u2,v2)(u_1,v_1),(u_2,v_2)(u1,v1),(u2,v2),若存在G中的结点同时连接这两条边(即u1,v1u_1,v_1u1,v1之一与u2,v2u_2,v_2u2,v2之一相同),则在线图L(G)中加入一条无向边,连接(u1,v1),(u2,v2)(u_1,v_1),(u_2,v_2)(u1,v1),(u2,v2)在线图中对应的结点。
    ·
    请你求出线图L(G)中所包含的无向边的数量。

【输入格式】
第一行,两个正整数n,m,分别表示无向图G中的结点数与边数。
接下来m行,每行两个正整数ui,viu_i,v_iui,vi,表示G中连接ui,viu_i,v_iui,vi的一条无向边。

【输出格式】
输出共一行,一个整数,表示线图L(G)中所包含的无向边的数量。

【样例输入 1】
5 4
1 2
2 3
3 1
4 5
【样例输出 1】
3
【样例输入 2】
5 10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
【样例输出 2】
30
【样例解释1】
在这里插入图片描述

【数据范围】
对于60%的测试点,保证1≤n≤500,1≤m≤5001≤n≤500,1≤m≤5001n500,1m500
对于所有测试点,保证1≤n≤105,1≤m≤1051≤n≤10^5,1≤m≤10^51n105,1m105

调味平衡

【问题描述】
小A准备了n种食材用来制作料理,这些食材依次以1,2,…,n编号,第i种食材的酸度为aia_iai,甜度为bib_ibi。对于每种食材,小A可以选择将其放入料理,或者不放入料理。料理的酸度A为放入食材的酸度之和,甜度B为放入食材的甜度之和。如果料理的酸度与甜度相等,那么料理的调味是平衡的。
过于清淡的料理并不好吃,因此小A想在满足料理调味平衡的前提下,合理选择食材,最大化料理的酸度与甜度之和。你能帮他求出在调味平衡的前提下,料理酸度与甜度之和的最大值吗?

【输入格式】
第一行,一个正整数n,表示食材种类数量。

接下来n行,每行两个正整数ai,bia_i,b_iai,bi,表示食材的酸度与甜度。

【输出格式】
输出共一行,一个整数,表示在调味平衡的前提下,料理酸度与甜度之和的最大值。
【样例输入 1】
3
1 2
2 4
3 2
【样例输出 1】
8
【样例输入 2】
5
1 1
2 3
6 1
8 2
5 7
【样例输出 2】
2
【数据范围】
对于40%的测试点,保证1≤n≤10,1≤ai,bi≤101≤n≤10,1≤a_i,b_i≤101n10,1ai,bi10
对于另外20%的测试点,保证1≤n≤50,1≤ai,bi≤101≤n≤50,1≤a_i,b_i≤101n50,1ai,bi10
对于所有测试点,保证1≤n≤100,1≤ai,bi≤5001≤n≤100,1≤a_i,b_i≤5001n100,1ai,bi500

http://www.lryc.cn/news/593449.html

相关文章:

  • STM32_Hal库学习ADC
  • IntelliJ IDEA中Mybatis的xml文件报错解决
  • SSM框架——注入类型
  • aws(学习笔记第四十九课) ECS集中练习(1)
  • Streamlit 官翻 5 - 部署、社区云 Deploy
  • Python绘制数据(三)
  • Matplotlib 30分钟精通
  • 人该怎样活着呢?55
  • Windows11下编译好的opencv4.8-mingw,可下载后直接用
  • Apache Kafka 学习笔记
  • 详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
  • Python高级数据类型:字典(Dictionary)
  • Datawhale 7月学习
  • RK3568 Linux驱动学习——SDK安装编译
  • Oracle为什么需要临时表?——让数据处理更灵活
  • DAY 18 推断聚类后簇的类型
  • 【Project】kafka+flume+davinci广告点击实时分析系统
  • MySQL(145)如何升级MySQL版本?
  • 在服务器(ECS)部署 MySQL 操作流程
  • 基于单片机宠物喂食器/智能宠物窝/智能饲养
  • 手撕Spring底层系列之:注解驱动的魔力与实现内幕
  • Spring AI 1.0版本 + 千问大模型之 文本记忆对话
  • 基于单片机病床呼叫系统/床位呼叫系统
  • C#操作WPS表格
  • 大模型军备竞赛升级!Grok 4 携 “多智能体内生化” 破局,重构 AI 算力与 Agent 2.0 时代
  • 张 关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导;
  • [MySQL基础3] 数据控制语言DCL和MySQL中的常用函数
  • 一个基于阿里云的C端Java服务的整体项目架构
  • 阿里云ssl证书自动安装及续订(acme)
  • NX二次开发常用函数——从一个坐标系到另一个坐标系的转换(UF_MTX4_csys_to_csys )相同体坐标转化