2025年9月CCF—GESP(Python五级)编程能力等级认证试卷
剩余时间 --:--:--
单选题 共 15 题
1.

下面的代码实现埃拉托斯特尼筛法(埃氏筛),横线处应填入( )。

2.

唯一分解定理描述的是()。

3.

下列python代码用Floyd判断一个单链表中是否存在环,链表的头节点为 head ,即用两个指针在链表上前进: slow 每次走 1 步, fast 每次走 2 步,若存在环, fast 终会追上 slow (相遇);若无环, fast 会先到达 nullptr。横线上应填写( )。

4.

下列代码用于判断一个数是否为完全数(即等于它的真因子之和的数,如6=1+2+3),哪个选项是正确的实现?

5.

给定一个 n x n 的矩阵 matrix ,矩阵的每一行和每一列都按升序排列。下面代码返回矩阵中第 k 小的元素,则两处横线上应分别填写( )。

6.

给定一个由非负整数组成的数组 digits ,表示一个非负整数的各位数字(最高位在数组首位)。下面代码对该整数执行 +1 操作,并返回结果数组,则横线上应填写( )。

7.

线性筛算法中有语句 if p * i > n break; ,其目的是( )。

8.

以下哪种情况使用链表比数组更合适?

9.

下述python代码实现了归并排序算法,则横线上应填写( )。

10.

给定一个整数数组 nums ,下面代码找到一个具有最大和的连续子数组,并返回其最大和。则下面说法错误的是( )。

11.

假设你是一家电影院的排片经理,只有一个放映厅。你有一个电影列表 movies ,其中 movies[i] =[start_i, end_i] 表示第 i 部电影的开始和结束时间。请你找出最多能安排多少部不重叠的电影,则横线上应分别填写的代码为( )。

12.

下面的python代码实现给定单链表头结点 head 和一个整数 val ,删除链表中所有结点值等于 val 的节点,并返回新的头结点,则横线处填写()。

13.

下面的代码实现线性筛法(欧拉筛),横线处应填入( )。

14.

下述python代码实现了快速排序算法,下面说法错误的是( )。

15.

以下代码计算两个数的最大公约数(GCD),横线上应填写( )。

判断题 共 10 题
1.

二分查找依赖数据的有序性,通过循环逐步缩减一半搜索区间来进行查找,且仅适用于数组或基于数组实现的数据结构。

2.

快速排序和归并排序都是稳定的排序算法。

3.

链表通过更改指针实现高效的节点插入与删除,但节点访问效率低、占用内存较多,且对缓存利用不友好。

4.

贪心算法总能得到全局最优解。

5.

基于下面定义的函数,通过判断isDivisibleBy9(n) == isDigitSumDivisibleBy9(n) 代码可验算如果一个数能被9整除,则它的各位数字之和能被9整除。

6.

线性筛关键是“每个合数只会被最小质因子筛到一次”,因此为

7.

下面代码采用分治算法求解汉诺塔问题,时间复杂度为

8.

所有递归算法都可以转换为迭代算法。

9.

假设函数 gcd() 函数能正确求两个正整数的最大公约数,则下面的findMusicalPattern(4,6) 函数返回2。

10.

下面递归实现的斐波那契数列的时间复杂度为

填空题 共 2 题
1.

试题名称:数字选取

时间限制:1.0 s

内存限制:512.0 MB

2.

试题名称:有趣的数字和

时间限制:1.0 s

内存限制:512.0 MB

C++ 编辑器
输入
输出