2025年12月 GESP CCF编程能力等级认证Python五级真题

========================================================================

答案和更多内容请查看网站:【试卷中心 -----> CCF GESP ----> Python ----> 五级】

网站链接

青少年软件编程历年真题模拟题实时更新

========================================================================

2025年12月 GESP CCF编程能力等级认证Python五级真题

一、单选题(每题 2 分,共 30 分)

第 1 题 对如下定义的循环单链表,横线处填写( )。

复制代码
class Node:
    def __init__(self, data):
    self.data = data
self.next = None
def create_list(value):
    head = Node(value)
head.next = head
return head
def insert_tail(head, value):
    p = head
while p.next != head:
    p = p.next
node = Node(value)
node.next = head
p.next = node
def print_list(head):
    _______________________________
while True:
    print(p.data, end = " ")
p = p.next
if p == head:
    break
print()

A.

if head is None:

return

p.next = head

B.

if head is None:

return

p = head.next

C.

if head is None:

return

p = head

D.

if head.next is None:

return

p = head

第 2 题 区块链技术是比特币的基础。在区块链中,每个区块指向前一个区块,构成链式列表,新区块只能接在链尾,不允许在中间插入或删除。下面代码实现插入区块添加函数,则横线处填写( )。

复制代码
class Block:
def __init__(self, idx, data, prev_block):
self.index = idx
self.data = data
self.prev = prev_block
class Blockchain:
def __init__(self):
self.tail = None
def init(self):
genesis_block = Block(0, "Genesis Block", None)
self.tail = genesis_block
def add_block(self, data):
____________________________________
def clear(self):
cur = self.tail
while cur is not None:
prev_block = cur.prev
cur.prev = None
cur = prev_block
self.tail = None
def print_chain(self):
cur = self.tail
chain = []
while cur is not None:
chain.append(f"Block {cur.index}: {cur.data}")
cur = cur.prev
for block_info in reversed(chain):
print(block_info)

A.

new_block = Block(self.tail.index, data, self.data)

B.

new_block = Block(self.tail.index + 1, data, self.tail)

self.tail = new_block

C.

new_block = Block(self.tail.index, data+1, self.data)

self.tail = new_block

D.

new_block = Block(self.tail.index, data, self.tail)

self.tail.data = new_block

第 3 题 下面关于单链表和双链表的描述中,正确的是( )。

复制代码
class DNode:
    def __init__(self, data):
    self.data = data
self.prev = None
self.next = None
def delete_dnode(node):
    if node.prev:
    node.prev.next = node.next
if node.next:
    node.next.prev = node.prev
node.prev = None
node.next = None
class SNode:
    def __init__(self, data):
    self.data = data
self.next = None
def delete_snode(head, node):
    if head is None or node is None:
    return
prev = head
while prev.next != node:
    prev = prev.next
prev.next = node.next
node.next = None

A. 双链表删除指定节点是 ,单链表是

B. 双链表删除指定节点是 ,单链表是

C. 双链表删除指定节点是 ,单链表是

D. 双链表删除指定节点是 ,单链表是

第 4 题 假设我们有两个数 和 ,它们对模 同余,即 。以下哪个值不可能是 ?

A. 3

B. 4

C. 6

D. 9

第 5 题 下面代码实现了欧几里得算法,下面有关说法,错误的是( )。

复制代码
def gcd1(a: int, b: int) - > int:
    return a
if b == 0
else gcd1(b, a % b)
def gcd2(a: int, b: int) - > int:
    while b != 0:
    temp = b
b = a % b
a = temp
return a

A. gcd1() 实现为递归方式。

B. gcd2() 实现为迭代方式。

C. 当 较大时, gcd1() 实现会多次调用自身,需要较多额外的辅助空间。

D. 当 较大时, gcd1() 的实现比 gcd2() 执行效率更高。

第 6 题 唯一分解定理描述的内容是( )。

A. 任何正整数都可以表示为两个素数的和。

B. 任何大于1的合数都可以唯一分解为有限个质数的乘积。

C. 两个正整数的最大公约数总是等于它们的最小公倍数除以它们的乘积。

D. 所有素数都是奇数。

第 7 题 下述代码实现素数表的线性筛法,筛选出所有小于等于 的素数,则横线上应填的代码是( )。

复制代码
def linear_sieve(n):
    if n < 2:
    return []
is_prime = [True] * (n + 1)
is_prime[0] = is_prime[1] = False
primes = []
for i in range(2, n + 1):
    if is_prime[i]:
    primes.append(i)
for j in range(len(primes)):
    p = primes[j]
if i * p > n:
    break------------------------------------------------------------------------------
if i % p == 0:
    break
return primes

A. is_prime[i * p] = False

B. is_prime[i] = False

C. is_prime[i * p] = True

D. is_prime[i + p] = False

第 8 题 下列关于排序的说法,正确的是( )。

A. 快速排序是稳定排序

B. 归并排序通常是稳定的

C. 插入排序是不稳定排序

D. 冒泡排序不是原地排序

第 9 题 下面代码实现了归并排序。下述关于归并排序的说法中,不正确的是( )。

A. 归并排序的的平均复杂度是 。

B. 归并排序需要 的额外空间。

C. 归并排序在最坏情况的时间复杂度是 。

D. 归并排序适合大规模数据。

========================================================================

答案和更多内容请查看网站:【试卷中心 -----> CCF GESP ----> Python ----> 五级】

网站链接

青少年软件编程历年真题模拟题实时更新

========================================================================

相关推荐
qq_192779873 分钟前
C++模块化编程指南
开发语言·c++·算法
2301_7903009620 分钟前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
代码村新手21 分钟前
C++-String
开发语言·c++
qq_4017004138 分钟前
Qt 中文乱码的根源:QString::fromLocal8Bit 和 fromUtf8 区别在哪?
开发语言·qt
程序员敲代码吗2 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
EndingCoder2 小时前
案例研究:从 JavaScript 迁移到 TypeScript
开发语言·前端·javascript·性能优化·typescript
Yyyyy123jsjs2 小时前
如何通过免费的外汇API轻松获取实时汇率数据
开发语言·python
白露与泡影2 小时前
2026版Java架构师面试题及答案整理汇总
java·开发语言
喵手2 小时前
Python爬虫实战:GovDataMiner —— 开放数据门户数据集元数据采集器(附 CSV 导出)!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·open data·开放数据门户数据集列表