试卷 2024年信息学奥赛CSP-S1提高组初赛真题试卷
2024年信息学奥赛CSP-S1提高组初赛真题试卷
选择题
第 1 题    单选题
在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?()
A.
pwd
B.

cd

C.

Ls

D.

echo

第 2 题    单选题
假设一个长度为 n 的整数数组中每个元素互不相同,且这个数组是无序的。要找到这个数组中最大元素的时间复杂度是多少?()
A.
O(n)
B.
O(log n)
C.
O(n log n)
D.
O(1)
第 3 题    单选题
在 C++中,以下哪个函数调用会造成栈溢出?()
A.
int foo( return 0; )
B.
Int bar( int x=1; return x)
C.
Void baz(){int a[1000]; baz();}
D.
Void qux(){return;}
第 4 题    单选题
在一场比赛中,有 10 名选手参加,前三名将获得金银铜牌,若不允许并列,且每名选手只能获得一枚铜牌,则不同的颁奖方式共有多少种?()
A.

120

B.

720

C.

504

D.

1000

第 5 题    单选题
下面那个数据结构最适合实现先进先出(FIFO)的功能?()
A.
B.
队列
C.
线性表
D.
二叉搜索树
第 6 题    单选题
一直 f(1) = 1,且对于 n>=2 有 f(n) = f(n − 1) + f( n/2 ) ,则 f(4)的值为:()
A.

4

B.

5

C.

6

D.

7

第 7 题    单选题
假设一个包含 n 个顶点的无向图,且该图是欧拉图。一下关于该图的描述中哪一项不一定正确?()
A.
所有顶点的度数均为偶数
B.
该图联通
C.
该图存在一个欧拉回路
D.
该图的边数是奇数
第 8 题    单选题
对数组进行二分查找的过程中,以下哪个条件必须满足?()
A.
数组必须是有序的
B.
数组必须是无序的
C.
数组长度必须是 2 的幂
D.
数组中的元素必须是整数
第 9 题    单选题
考虑一个自然数 n 以及一个模数 m,你需要计算 n 的逆元(即 n 在模 m 意义下的乘法逆元)。下列哪种算法最为合适?()
A.
使用暴力方法依次尝试
B.
使用扩展欧几里得解法
C.
使用快速幂解法
D.
使用线性筛法
第 10 题    单选题
在设计一个哈希表时,为了减少冲突,需要使用适当的哈希函数和和冲突解决策略。已知某哈希表中有 n 个键值对,表的装载因子为α(0<α<=1)。在使用开放地址法解决冲突的过程中,最坏情况下查找一个元素的时间复杂度为()
A.
O(1)
B.
O(log n)
C.
O (1/(1-α))
D.
O(n)
第 11 题    单选题
假设有一颗 h 层的完全二叉树,该树最多包含多少个节点(    )
A.

2h− 1

B.
2(h+1)− 1
C.

2h

D.
2h+1
第 12 题    单选题
设有一个 10 个顶点的完全图,每两个顶点之间都有一条边,有多少个长度为 4 的环?()
A.

120

B.

210

C.

630

D.

5040

第 13 题    单选题
对于一个整数 n,定义 f(n)为 n 的各个位数之和,问使 f(f(x))=10 的最小自然数 x 是多少?()
A.

29

B.

199

C.

299

D.

3999

第 14 题    单选题
设有一个长度为 n 的 01 字符串,其中有 k 个 1,每次操作可以交换相邻两个字符。在最坏的情况下将这 k 个 1 移到字符串最右边所需要的交换次数是多少?()
A.

k

B.
K*(k-1)/2
C.
(n-k)*k
D.
(2n-k-1)*k/2
第 15 题    单选题

如图是一张包含 7 个顶点的有向图。如果要删除一些边,使得从节点 1 到节点 7 没有可行路径,且删除的边数最少,请问总共有多少种可行的删除边的集合?()

A.

1

B.

2

C.

3

D.

4

阅读程序
第 16-20 题    组合题

2024 CSP-S1阅读程序题(1)(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×,除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)

第16题 判断
当 1000>=d>=b 时,输出的序列是有序的( )
A.
正确
B.
错误
第17题 判断
当输入“5 5 1”时,输出为“1 1 5 5 5”( )
A.
正确
B.
错误
第18题 判断
假设数组 c 长度无限制,该程序所实现的算法的时间复杂度是 O(b)( )
A.
正确
B.
错误
第19题 单选
函数 int logic(int x,int y)的功能是()
A.
按位与
B.
按位或
C.
按位异或
D.
以上都不是
第20题 单选
当输入为“10 100 100”时,输出的第 100 个数是()
A.

91

B.

94

C.

95

D.

98

第 21-26 题    组合题

2024 CSP-S1阅读程序题(2)

第21题 判断
假设输入的 s 是包含 n 个字符的 01 串,函数 solve()所实现的算法时间复杂度是 O(n*2^m)。( )
A.
正确
B.
错误
第22题 判断
输入“11 2 10000000001”时,程序输出两个数 32 和 23.( )
A.
正确
B.
错误
第23题 判断
在 n<=10 时,solve()的返回值始终小于410( )
A.
正确
B.
错误
第24题 单选
当 n=10 且 m=10 时,有多少种输入使得两行的结果完全一致?()
A.

1024

B.

11

C.

10

D.

0

第25题 单选
当 n<=5 时,solve()的最大可能返回值为?()
A.

65

B.

211

C.

665

D.

2059

第26题 单选
若 n=8,m=8,solve 和 solve2 的返回值的最大可能的差值为()
A.

1477

B.

1995

C.

2059

D.

2187

第 27-32 题    组合题

2024 CSP-S1阅读程序题(3)

第27题 判断
假设程序运行前能自动将 maxn改为 n+1,所实现的算法的时间复杂度是 O(nlogn)。( )
A.
正确
B.
错误
第28题 判断
时间开销的瓶颈是 init()函数( )
A.
正确
B.
错误
第29题 判断
若修改常数 B1 或 K1 的值,该程序可能会输出不同呢的结果( )
A.
正确
B.
错误
第30题 单选
在 solve()函数种,h[]的合并顺序可以看作是:()
A.
二叉树的 BFS 序
B.
二叉树的先序遍历
C.
二叉树的中序遍历
D.
二叉树的后序遍历
第31题 单选
输入“10”,输出的第一行是?()
A.

83

B.

424

C.

54

D.
110101000
第32题 单选
输入“16”,输出的第二行是?()
A.

7

B.

9

C.

10

D.

12

完善程序
第 33-37 题    组合题

合并序列:有两个长度为 N 的单调不降序列 A 和 B,序列的每个元素都是小于 10^9的非负整数。在 A 和 B 中各取一个数相加可以得到 N^2 个和,求其中第 k 小的和。上述参数满足 N<=10^5 和 1<=K<=N^2

第33题 单选
1)处应填()
A.
an-a
B.
an-a-1
C.
ai
D.
ai+1
第34题 单选
(2)处应填()
A.
a[mid]>ai
B.
a[mid]>=ai
C.
a[mid]<ai <="" p="">
D.
a[mid]<=ai
第35题 单选
(3)处应填()
A.
a+l
B.
a+l+1
C.
a+l-1
D.
an-l
第36题 单选
(4)处应填()
A.
a[n-1]+b[n-1]
B.
a[n]+b[n]
C.
2*maxn
D.
maxn
第37题 单选
(5)处应填()
A.
get_rank(mid)<k <="" p="">
B.
get_rank(mid)<=k
C.
get_rank(mid)>k
D.
get_rank(mid)>=k
第 38-42 题    组合题

次短路:已知有一个 n 个点 m 条边的有向图 G,并且给定图中的两个点 s 和 t,求次短路(长度严格大于最短路的最短路径)。如果不存在,输出一行“-1”。如果存在,输出两行,第一行表示此段路经的长度,第二行表示此段路的一个方案

第38题 单选
(1)处应填()
A.
udp(pre[b],n+b,dis[b],q)
B.
upd(a,n+b,d,q)
C.
upd(pre[b],b,dis[b],q)
D.
upd(a,b,d,q)
第39题 单选
(2)处应填()
A.
make_pair(-d,b)
B.
make_pair(d,b)
C.
make_pair(b,d)
D.
make_pair(-b,d)
第40题 单选
(3)处应填()
A.
0xff
B.
0x1f
C.
0x3f
D.
0x7f
第41题 单选
(4)处应填()
A.
upd(a,n+b,dis[a]+c,q)
B.
upd(n+a,n+b,dis2[a]+c.q)
C.
upd(n+a,b,dis2[a]+c,q)
D.
upd(a,b,dis[a]+c,q)
第42题 单选
(5)处应填()
A.
pre2[a%n]
B.
pre[a%n]
C.
pre2[a]
D.
pre[a%n]+1
答题卡
选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
阅读程序
完善程序
题目总数:20
总分数:100
时间:180分钟