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.pswp.cn/web/89870.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89870.shtml
英文地址,请注明出处:http://en.pswp.cn/web/89870.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Python 类设计模式:属性分类(类属性 VS 实例属性)与方法类型(实例 / 类 / 静态)详解》

Python 类和对象&#xff1a;从 "图纸" 到 "实物" 的编程思维面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP &#xff09;是一种通过组织对象来编程的方法。1.初识类和对象&#xff1a;用生活例子看透核心概念1.1类-class物与类…

Eureka服务端启动

目录 1、相关文章 2、创建eureka-server子工程 3、父工程build.gradle引入版本依赖管理 4、子工程build.gradle引入依赖 5、将main重命名为EurekaApplication并修改代码 6、添加application.yml文件 7、启动工程并访问 8、访问界面如下 9、 完整目录结构 1、相关文章 …

AWS Partner: Sales Accreditation (Business)

AWS Partner: Sales Accreditation &#xff08;Business&#xff09;云概念和AWS云计算什么是云计算&#xff1f;计算的演变趋势云计算部署模型AWS 客户采用的模式为什么客户选择AWSAWS竞争优势高可用的全球基础设施AWS服务服务广度和深度AWS产品和服务服务类别AWS解决方案库A…

深入理解设计模式之中介者模式:解耦对象交互的利器

为什么需要中介者&#xff1f;在软件开发中&#xff0c;我们经常会遇到对象之间需要相互通信的场景。当系统规模较小时&#xff0c;对象直接相互引用并通信可能不会带来太大问题。但随着系统复杂度增加&#xff0c;对象间的交互关系会变得错综复杂&#xff0c;形成一个复杂的网…

从 0 安装 Label Studio:搭建可后台运行的数据标注平台(systemd 实践

本文将介绍如何使用 pip 安装 Label Studio&#xff0c;并通过 systemd 实现开机自启与后台运行&#xff0c;适用搭建个人项目的数据标注平台。 一、Label Studio 简介 Label Studio 是一个开源、跨模态的数据标注工具&#xff0c;支持文本、图像、音频、视频、HTML等多种类型…

【数据结构】链表(linked list)

目录 一、链表的介绍 二、单链表 1. 单链表的初始化 2. 单链表的插入 &#xff08;1&#xff09;动态申请一个节点 &#xff08;2&#xff09;头插法 &#xff08;3&#xff09;尾插法 &#xff08;4&#xff09;按照位置来插入 &#xff08;5&#xff09;在地址之前插…

反序列化漏洞1-PHP序列化基础概念(0基础超详细)

一.PHP序列化基础概念首先当我们看到反序列化漏洞这个概念&#xff0c;我们的第一个问题是什么是反序列化&#xff1f;那么我们要知道什么是反序列化就要知道什么是序列化。序列化就是可以将一个对象压缩并格式化成字符串&#xff0c;可以将该对象保存下来&#xff0c;以便存储…

【微服务】Ocelot微服务网关

目录 一、目的 二、Ocelot介绍 三、.Net中使用Ocelot搭建网关服务 3.1 搭建网关Ocelot步骤 3.1.1、创建Net7 WebApi服务 3.1.2、Nuget引入-Ocelot程序包&#xff08;版本&#xff1a;19.0.2&#xff09; 3.1.3、配置中间件和IOC注册 3.1.4 配置文件编辑Ocelot网关配置信…

零基础入门:用按键精灵实现视频自动操作(附完整脚本)

摘要&#xff1a;本文手把手教你编写视频平台的自动化脚本&#xff0c;涵盖点击、循环、防检测等核心技巧&#xff0c;无需编程基础&#xff0c;轻松实现自动播放/点赞/跳过广告。&#xff08;使用按键精灵2024版演示&#xff09; 一、应用场景 自动化操作&#xff1a;自动跳过…

AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)

文章目录AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)学习内容&#xff1a;1.load documents&#xff08;csv&#xff09;1.1 学习url1.2 load csv文件1.2.1 默认load1.2.2 csv文件内容1.2.2 执行csv文件的load1.3 Customizing the CSV parsing an…

企业运维实战:Jenkins 依赖 JDK21 与应用需 JDK1.8 共存方案(含流水线配置)

前言&#xff1a;在企业运维中&#xff0c;“工具升级”与“业务兼容”的平衡始终是核心挑战。近期我们遇到一个典型场景&#xff1a;Jenkins 升级到 2.450 版本后&#xff0c;强制要求 JDK21 运行环境&#xff1b;但开发团队的应用程序因框架依赖&#xff0c;必须使用 JDK1.8 …

爬虫小知识三:selenium库

前言 selenium 库是一种用于 Web 应用程序测试的工具&#xff0c;它可以驱动浏览器执行特定操作&#xff0c;自动按照脚本代码做出单击、输入、打开、验证等操作&#xff0c;支持的浏览器包括 IE、Firefox、Safari、Chrome、Opera 等。 与 requests 库不同的是&#xff0c;se…

Jmeter使用 -1

1 接口测试1.1 为什么要进行接口测试接口测试能够绕过前端校验&#xff0c;对后端的接口处理逻辑进行测试&#xff08;数据的边界/格式/类型&#xff09;在一些需要重复测试的需求中&#xff0c;接口自动化的效率比手工执行效率高1.2 接口测试流程熟悉API接口文档&#xff08;接…

GitHub 趋势日报 (2025年07月16日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图2415markitdown570claude-code434ART330erpnext150MusicFree146rustdesk129vanna80…

Python+Tkinter制作音频格式转换器

我们将使用Python的Tkinter库来构建一个音频格式转换器界面。由于音频转换需要实际的处理&#xff0c;我们将使用pydub库&#xff08;需要安装&#xff09;来进行音频格式转换。同时&#xff0c;我们会使用ffmpeg作为后端&#xff0c;因此请确保系统中已安装ffmpeg并添加到环境…

Haproxy算法精简化理解及企业级高功能实战

文章目录4. Haproxy的算法4.1 静态算法4.1.1 static-rr&#xff1a;基于权重的轮询调度1. 示例&#xff1a;4.1.2 first1. 示例2. 测试效果&#xff1a;4.2 动态算法4.2.1 roundrobin1. 示例2. 动态调整权重4.2.2 leastconn1. 示例4.3 其他算法4.3.1 source1. 示例2. 测试4.3.2…

git fork的项目远端标准协作流程 仓库设置[设置成upstream]

这是一个在开源协作中非常常见的配置。 简单来说&#xff0c;upstream 在这里指的是你 Fork 来的那个原始的、官方的仓库。 下面我们来详细解释一下这个 git remote -v 输出的含义&#xff1a; 1. 两条“遥控器” (Remotes) 你的 git 配置了两个远程仓库的地址&#xff0c;就像…

[FFmpeg] 输入输出访问 | 管道系统 | AVIOContext 与 URLProtocol | 门面模式

链接&#xff1a;https://trac.ffmpeg.org/ docs&#xff1a;FFmpeg FFmpeg 是一个强大的多媒体框架&#xff0c;旨在处理媒体处理的各个阶段。 它就像一个数字媒体工厂&#xff0c;包含以下部门&#xff1a;打包/解包&#xff08;容器处理&#xff09;、 转译/压缩&#xff…

微服务的编程测评系统2

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言工程创建创建ck-oj创建oj-modules创建具体微服务oj-system推送码云管理员登录逻辑分析docker安装mysqldocker客户端docker desktop安装安装mysqlmysql-plus和数据…

AR智能巡检:电力运维的数字化变革

在电力行业快速发展的当下&#xff0c;传统运维方式已难以满足现代电网对高效、安全的需求。近年来&#xff0c;增强现实&#xff08;AR www.teamhelper.cn &#xff09;技术的兴起为电力巡检带来了全新的解决方案。通过实时数据可视化、远程协作和智能分析&#xff0c;AR技术…