#1614. 2024CSP-S1提高组试题
2024 CCF 非专业级别软件能力认证第一轮 (CSP-S1)提高级 C++语言试题
认证时间:2023 年 9 月 21 日 14:30~16:30
考生注意事项:
试题纸共有 13 页,答题纸共有 1 页,满分 100 分。请在答题纸上作答,写在试题纸上的一律无效。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)
-
在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?( )
-
假设一个长度为 n 的整数数组中每个元素互不相同,且这个数组是无序的。要找到这个数组中最大元素的时间复杂度是多少?( )
-
在 C++中,以下哪个函数调用会造成栈溢出?( )
-
在一场比赛中,有 10 名选手参加,前三名将获得金银铜牌,若不允许并列,且每名选手只能获得一枚铜牌,则不同的颁奖方式共有多少种?( )
-
下面那个数据结构最适合实现先进先出(FIFO)的功能?( )
-
一直
f(1) = 1
,且对于n>=2
有f(n) = f(n − 1) + f( n/2)
,则f(4)
的值为: ( )
-
假设一个包含 n 个顶点的无向图,且该图是欧拉图。一下关于该图的描述中哪一项不一定正确?( )
-
对数组进行二分查找的过程中,以下哪个条件必须满足?( )
-
考虑一个自然数 n 以及一个模数 m,你需要计算 n 的逆元(即 n 在模 m 意义下的乘法逆元) 。下列哪种算法最为合适?( )
10.在设计一个哈希表时,为了减少冲突,需要使用适当的哈希函数和和冲突解决策略。已知某哈希表中有 n 个键值对,表的装载因子为 。在使用开放地址法解决冲突的过程中,最坏情况下查找一个元素的时间复杂度为( )
11.假设有一颗 h 层的完全二叉树,该树最多包含多少个节点( )
12.设有一个 10 个顶点的完全图,每两个顶点之间都有一条边,有多少个长度为 4 的环?( )
13.对于一个整数 n, 定义 f(n)
为 n 的各个位数之和, 问使 f(f(x))=10
的最小自然数 x 是多少?( )
14.设有一个长度为 n 的 01
字符串,其中有 k个 1,每次操作可以交换相邻两个字符。在最坏的情况下将这 k 个 1 移到字符串最右边所需要的交换次数是多少?( )
15.如图是一张包含 7 个顶点的有向图。如果要删除一些边,使得从节点 1 到节点 7 没有可行路径,且删除的边数最少,请问总共有多少种可行的删除边的集合?( )
二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×,除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)
(1)
判断题:
16.当 1000>=d>=b
时,输出的序列是有序的( )
17.当输入“5 5 1”时,输出为“1 1 5 5 5” ( )
18.假设数组 c长度无限制,该程序所实现的算法的时间复杂度是 的( )
单选题:
19.函数 int logic(int x, int y)
的功能是( )
20.(4 分)当输入为“10 100 100”时,输出的第 100 个数是( )
(2)
21.假设输入的s是包含n个字符的01串, 函数solve()
所实现的算法时间复杂度是。( )
22.输入“11 2 10000000001”时,程序输出两个数 32 和 23.( )
23.(2 分)在 n<=10
时,solve()
的返回值始终小于 410( )
单选题
24.当 n=10
且 m=10
时,有多少种输入使得两行的结果完全一致?()
25.当 n<=5
时,solve()
的最大可能返回值为?( )
26.若 n=8
,m=8
,solve
和 solve2
的返回值的最大可能的差值为( )
(3)
判断题
27.假设程序运行前能自动将maxn
改为n+1
, 所实现的算法的时间复杂度是。 ( )
28.时间开销的瓶颈是 init()
函数( )
29.若修改常数 B1 或 K1 的值,该程序可能会输出不同呢的结果( )
单选题
30.在 solve()
函数种,h[]的合并顺序可以看作是: ( )
31.输入“10” ,输出的第一行是?( )
- (4 分)输入“16” ,输出的第二行是?( )
三.完善程序(单选题,每小题 3 分,共计 30 分)
(1)(合并序列),有两个长度为 N 的单调不降序列 A 和 B,序列的每个元素都是小于 10^9的非负整数。在 A 和 B中各取一个数相加可以得到 N^2 个和,求其中第 k 小的和。上述参数满足 N<=10^5 和 1<=K<=N^2
33.(1)处应填( )
- (2) 处应填( )
- (3) 处应填( )
- (4) 处应填( )
- (5) 处应填( )
(2) **(次短路)**已知有一个 n 个点 m 条边的有向图 G,并且给定图中的两个点 s 和 t,求次短路(长度严格大于最短路的最短路径) 。如果不存在,输出一行“-1” 。如果存在,输出两行,第一行表示此段路经的长度,第二行表示此段路的一个方案。
38.(1)处应填( )
39.(2)处应填( )
40.(3)处应填( )
41.(4)处应填( )
42.(5)处应填( )