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 ----> 五级】

网站链接

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

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

相关推荐
Ro Jace1 天前
基于互信息的含信息脑电图自适应窗口化情感识别
人工智能·python
风送雨1 天前
Go 语言进阶学习:第 2 周 —— 接口、反射与错误处理进阶
开发语言·学习·golang
福楠1 天前
模拟实现stack、queue、priority_queue
c语言·开发语言·数据结构·c++
dear_bi_MyOnly1 天前
数据分析常用操作汇总
大数据·python·数据挖掘·数据分析·学习方法
MC皮蛋侠客1 天前
使用 Sphinx 构建高质量 Python 文档
python·全文检索·sphinx
峰上踏雪1 天前
Go(Golang)Windows 环境配置关键点总结
开发语言·windows·golang·go语言
我不是8神1 天前
go语言语法基础全面总结
开发语言·golang·xcode
No0d1es1 天前
2025年12月 GESP CCF编程能力等级认证Python一级真题
开发语言·python·青少年编程·gesp·ccf
木卫二号Coding1 天前
第七十三篇-ComfyUI+V100-32G+Flux Schnell+Lora
图像处理·python