选择题 共15道

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


阅读程序 共18道

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33


完善程序 共10道

34 35 36 37 38 39 40 41 42 43

370 | 2021年CSP-S提高组第一轮真题-练习
选择题 共15道
01 在 Linux 系统终端中,用于列出当前目录下所含的文件和子目录的命令为( ) 2分
登录后查看选项
02

二进制数 图片1.png

图片.png

的和为( )

2分
登录后查看选项
03 在程序运行过程中,如果递归调用的层数过多,可能会由于( )引发错误。 2分
登录后查看选项
04 以下排序方法中,( )是不稳定的 2分
登录后查看选项
05 以比较为基本运算,对于 2n 个数,同时找到最大值和最小值,最坏情况下需要的最小的比较次数为( )。 2分
登录后查看选项
06

现有一个地址区间为 010 的哈希表,对于出现冲突情况,会往后找第一个空的地址存储(到 10 冲突了就从

0 开始往后),现在要依次存储(01, 234567),哈希函数为 h(x)=x2 mod 11。请问 7 存储在

哈希表哪个地址中( )。

2分
登录后查看选项
07 G 是一个非连通简单无向图(没有自环和重边),共有 36 条边,则该图至少有( )个点 2分
登录后查看选项
08 令根结点的高度为 1,则一棵含有 2021 个结点的二叉树的高度至少为( )。 2分
登录后查看选项
09 前序遍历和中序遍历相同的二叉树为且仅为( ) 2分
登录后查看选项
10 定义一种字符串操作为交换相邻两个字符。将“DACFEB”变为 “ABCDEF”最少需要( )次上述操作。 2分
登录后查看选项
11

有如下递归代码

solve(t, n):

if t=1 return 1

else return 5*solve(t-1,n) mod n

solve(23,23)的结果为( )。

2分
登录后查看选项
12

斐波那契数列的定义为:F1=1F2=1Fn=Fn-1+Fn-2 (n>=3)。现在用如下程序来计算斐波那契数列的第 n

项,其时间复杂度为( )。

F(n):

if n<=2 return 1

else return F(n-1) + F(n-2)

2分
登录后查看选项
13 有 8 个苹果从左到右排成一排,你要从中挑选至少一个苹果,并且不能同时挑选相邻的两个苹果,一共有( )种方案。 2分
登录后查看选项
14

设一个三位数 图片.png

a, b, c 均为 19 之间的整数,若以 abc 作为三角形的三条边可以构成等腰三

角形(包括等边),则这样的 n 有( )个

2分
登录后查看选项
15

有如下的有向图,节点为A, B, … , J, 其中每条边的长度都标在图中。则节点A 到节点J 的最短路径长度为

()。图片.png

2分
登录后查看选项
阅读程序 共18道
16

16 - 21 题 组合题

image.png

假设输入的所有数的绝对值都不超过 1000,完成下面的判断题和单选题:

将第 21 行中 t 的类型声明从 int 改为 double,不会影响程序运行的结果。( )

1.5分
登录后查看选项
17 将第 26、27 行中的“/ sqrt(t) / 2”替换为“/ 2 / sqrt(t)”,不会影响程序运行的结果。( ) 1.5分
登录后查看选项
18 将第 28 行中的“x * x”改成“sq(x)”、“y * y”改成“sq(y)” ,不会影响程序运行的结果。( ) 1.5分
登录后查看选项
19 当输入为“0 0 0 1 1 0 0 1”时,输出为“1.3090”。( ) 1.5分
登录后查看选项
20 当输入为“1 1 1 1 1 1 1 2”时,输出为( )。 3分
登录后查看选项
21 这段代码的含义为( )。 3分
登录后查看选项
22

22 - 27 题 组合题

image.png

image.png

假设输入的所有数的绝对值都不超过 1000,完成下面的判断题和单选题:

程序总是会正常执行并输出两行两个相等的数。( )

1.5分
登录后查看选项
23 第 28 行与第 38 行分别有可能执行两次及以上。( ) 1.5分
登录后查看选项
24 当输入为“5 -10 11 -9 5 -7”时,输出的第二行为“7”。( ) 1.5分
登录后查看选项
25 solve1(1, n) 的时间复杂度为( ) 3分
登录后查看选项
26 solve2(1, n) 的时间复杂度为( )。 3分
登录后查看选项
27 当输入为“10 -3 2 10 0 -8 9 -4 -5 9 4”时,输出的第一行为( )。 3分
登录后查看选项
28

28 - 33 题 组合题

31.png

32.png

假设输入总是合法的(一个整数和一个不含空白字符的字符串,用空格隔开),完成下面的判断题和单选题:


程序总是先输出一行一个整数,再输出一行一个字符串。( )

1.5分
登录后查看选项
29

对于任意不含空白字符的字符串 str1,先执行程序输入“0 str1”,得到输出的第

二行记为 str2;再执行程序输入“1 str2”,输出的第二行必为 str1。( )

1.5分
登录后查看选项
30 当输入为“1 SGVsbG93b3JsZA==”时,输出的第二行为“HelloWorld”。( ) 1.5分
登录后查看选项
31 设输入字符串长度为 n,encode 函数的时间复杂度为( ) 3分
登录后查看选项
32 输出的第一行为( )。 3分
登录后查看选项
33 当输入为“0 CSP2021csp”时,输出的第二行为( )。 3分
登录后查看选项
完善程序 共10道
34

34 - 38 题 组合题

(分数背包)小Sn块蛋糕,编号从1ni块蛋糕的价值是wi, 体积是vi。他有一个大小为B的盒子来装这些

蛋糕,也就是说装入盒子的 蛋糕的体积总和不能超过B

他打算选择一些蛋糕装入盒子,他希望盒子里装的蛋糕的价值之和尽量 大。

为了使盒子里的蛋糕价值之和更大,他可以任意切割蛋糕。具体来说,他 可以选择一个a 0<a<l,并将一块

价值是w,体枳为v的蛋糕切割成两 块.其中一块的价值是aw,体枳是av,另一块的价值是(l-a)・w.体 积是

l-av。他可以重复无限次切割操作。

现要求编程输出最大可能的价值,以分数的形式输出。

比如n=3, B=8,三块蛋糕的价值分别是442,体枳分别是532。 那么最优的方案就是将休积为5的蛋糕

切成两份,一份体积是3,价值是 2.4,另一份体积是2,价值是1.6,然后把休积是3的那部分和后两块蛋 糕打包进盒

子。最优的价值之和是8.4,故程序输出42/5

输入的数据范围为:1≤n≤1000,1≤B≤10^5;1≤wi,vi≤100

提示:将所有的蛋糕按照性价比wi/vi从大到小排序后进行贪心选择。

试补全程序。

①处应填()

3分
登录后查看选项
35 ②处应填() 3分
登录后查看选项
36 ③处应填() 3分
登录后查看选项
37 ④处应填() 3分
登录后查看选项
38 ⑤处应填() 3分
登录后查看选项
39

39 - 43 题 组合题

(最优子序列)取m=6,给出长度为n的整数序列a1,a2……an0 ≤ ai<2m)。对于一个二进制数x,定义其分

w(x)x + popcnt(x),其中 popcnt(x)表示x二进制表示中1的个数。对于一个子序列b1b2bk,定 义其

子序列分值Swb1b2+wb2b3+wb3b4+……+wbk-1bk)。其中㊉表示按位异或。对于

空子序列,规定其子序列分值为0。求一个子序列使得其子序列分值最大,输出这个最大值。

输入第一行包含一个整数n(1 ≤ n ≤ 40000).接下来一行包含n个整数 a1a2……an

提示:考虑优化朴素的动态规划算法,将前 位和后 位分开计算。

Max[x][y]表示当前的子序列下一个位置的高8位是X、最后一个位置的 低8位是y时的最大价值。

试补全程序。

①处应填()

3分
登录后查看选项
40 ②处应填() 3分
登录后查看选项
41 ③处应填() 3分
登录后查看选项
42 ④处应填() 3分
登录后查看选项
43 ⑤处应填() 3分
登录后查看选项