GESP CCF python五级编程等级考试认证真题 2024年12月
1 单选题(每题 2 分,共 30 分)
第 1 题 下面的程序中,x,y都是正整数,完成的算法是( )
def chenadai(x, y):
while y:
x, y = y, x % y
return x
A. 最小公倍数
B. 最大公约数
C. 数字x能够整除y的最小数
D. 数字x与数字y的所有公约数
第 2 题 下列程序中实现的是( )
def chenadai(x, y):
return x * y // (x,y的最大公约数)
A. 实现了求x,y的最小公约数
B. 实现了求x,y的最大公约数
C. 实现了求x,y的最小公倍数
D. 实现了求x,y的平均值
第 3 题 欧几里得算法又称作辗转相除算法,下面程序中是这种算法的是( )
A.
B.
C.
D.
第 4 题 下列程序是二分法的程序,横线处应该填上( )。
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
_________________________
return -1
A.
B.
C.
D.
第 5 题 下面折半查找程序的时间复杂度为( )
def binary_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == x:
return mid
elif arr[mid] > x:
high = mid - 1
else:
low = mid + 1
return -1
A.O(n * log n)
B.O(n)
C.O(log n)
D.O(n^2)
第 6 题 下列程序中,使用了埃氏筛法,横线处应该填写的是()
def aishishai(n):
if n < 2:
return []
prime = [True] * (n + 1)
prime[0] = prime[1] = False
——————————————————————————————————
if prime[p]:
for i in range(p * p, n + 1, p):
prime[i] = False
return [p for p in range(n + 1) if prime[p]]
A. for p in range(2, n ** 0.5 + 1):
B. for p in range(2, int(n ** 0.5) + 1):
C. for p in range(2, int(n ** 0.5) + 0.5):
D. for p in range(2, n ** 0.5 + 0.5):
第 7 题 18到100之间的所有素数的和为多少( )
A. 1060
B. 1004
C. 1002
D. 1052
第 8 题 下面程序是对2024进行唯一分解,最后的结果应该是( )。
def weiyi(n):
factors = {}
for i in range(2, n+1):
while n % i == 0:
if i in factors:
factors[i] += 1
else:
factors[i] = 1
n //= i
return factors
A. 1,2,3,13,23
B. 2,7,11,23
C. 2:3,11:1,23:1
D. 2,3,13,23
第 9 题 下面关于循环链表的说法正确的是( )。
A. 循环链表的最后一个结点指向头结点,形成一个闭环
B. 必须通过特定结点才可以遍历整个链表
C. 不属于链式存储结构
D. 在长度为n的顺序表下标为i的位置前插入一个元素(1 ≤ i ≤ n+1),元素的移动次数为n-i+1
第 10 题 下列归并算法程序中,横线处应该填入的是( )
def merge_sort(array):
if len(array) == 1:
return array
_________________________
return merge(left, right)
def merge(left, right):
left_index, right_index, merge_array = 0, 0, list()
while left_index < len(left) and right_index < len(right):
if left[left_index] <= right[right_index]:
merge_array.append(left[left_index])
left_index += 1
else:
merge_array.append(right[right_index])
right_index += 1
merge_array = merge_array + left[left_index:] + right[right_index:]
return merge_array
A.
B.
C.
D.
================================================
答案和更多内容请查看网站:【试卷中心 -- Python编程 五级/六级/其它】
网站链接
青少年软件编程历年真题模拟题实时更新
================================================