理论卷2024年9月GESP等级认证(Python) · 五级

GESP Python 5级 2024.09

满分 100 · 及格 60 · 时长 60 分钟 · 共 27 题 (单选15 / 判断10 / 编程题2)
试卷阅览 · 免费预览前 10 题 · 交卷后可查看答案与解析
1
单选题号 #9577
分值 2

在升序数组 nums 中寻找目标值 target,下列程序可以填入的是()

class Search(object):
 def search(self, nums, target):
 left, right = 0, len(nums) - 1
 while left target:
 right = mid - 1
 else:
 left = mid + 1
 return -1
A

mid = (right + left) // 2 + left

B

mid = (right - left) // 2 + left

C

mid = (right - left) // 2 -right

D

mid = (right + left) // 2 - left

2
单选题号 #9578
分值 2

500个病毒样本中,已知有一个是病毒检测呈阳性,用试纸测试阳性病毒以后,试纸在3天以后会变色,用试纸测试时间不计,三天以后要出结果,请问最少用多少个试纸能够找出哪一个病毒样本有毒?

A

499

B

250

C

9

D

125

3
单选题号 #9579
分值 2

一名收银员,给顾客找零,找零的目标是给出确定金额的同时,使用尽可能少的硬币。有不同面额的硬币:1分,5分,10分,25分.如果需要给顾客准确的零钱77分,同时使用最少的硬币下列程序中横线应该填写( )。

def coin_change(amount, coins):
 result = []
 for coin in sorted(coins, reverse=True):
 while amount >= coin:
 ___________________
 result.append(coin)
 return result

coins = [1, 5, 10, 25]
amount = 63
A

amount -= coin

B

amount <= coin

C

amount >= coin

D

amount += coin

4
单选题号 #9580
分值 2

下列程序是素数筛的程序,横线处应该填上( )。

def sieve(n):
 if n < 2:
 return []
 prime = [True] * (n+1)
 prime[0] = prime[1] = False
 for i in range(2, int(math.sqrt(n)) + 1):
 if prime[i]:
 _______________________
 prime[j] = False
 return [p for p in range(2, n+1) if prime[p]]
for prime in sieve_of_eratosthenes(100):
 print(prime)
A

for j in range(i, n+1, i):

B

for j in range(i*i, 1, n):

C

for j in range(i*i, n+1, i):

D

for j in range(i, n, i):

5
单选题号 #9581
分值 2

下面程序是埃氏筛的一个实现,横线处应该填写( )。

n = 10**8
s = [0]*(n+1)
k=0
for i in range(2,n+1):
 if s[i]==0:
 k+=1
 ___________________________
 s[j]=1
A

for i in range(i*i,n+1,i):

B

for j in range(i*i,n,j):

C

for j in range(i*i,n+1,i):

D

for j in range(j*j,n+1,i):

6
单选题号 #9582
分值 2

下列程序中,使用了二分查找算法,横线处应该填写的是()。

def search(arr, x):
 low = 0
 high = len(arr) - 1
 while low x:
 high = mid - 1
 else:
 low = mid + 1
 return -1
A

mid = (low - high) // 2

B

mid = (low + high) // 2

C

mid = (low + high) / 2

D

mid = (low - high) / 2

7
单选题号 #9583
分值 2

正整数1024的所有约数的和为多少( )。

A

2050

B

2059

C

2047

D

2044

8
单选题号 #9584
分值 2

下面程序是对n!进行唯一分解,横线处应该填入的是( )。

def unique_fac(n):
 print(n, '=', end='')
 for i in range(2, n + 1):
 _____________________________
 print(' {}*'.format(i), end='')
 n //= i
 if n % i == 0 and i == n:
 print(' {}'.format(i), end='')
 break

unique_fac(math.factorial(5))
A

while n % i != 0 and i != n:

B

while n % i == 0 and i == n:

C

while n % i == 0 and i != n:

D

while n % i != 0 and i == n:

9
单选题号 #9585
分值 2

假设有一些物品,每个物品都有自己的重量,我们需要将这些物品装入箱子中,每个箱子也有自己的重量限制。贪心算法每次都选择重量最轻的物品放入当前最轻的箱子中,如果箱子可以装下,就放入;如果箱子不能装下,就尝试下一个箱子,直到找到可以放入的箱子。下列贪心算法程序中,横线处应该填入的是( )。

def box_packing(items, boxes):
 boxes.sort(key=lambda x: x[0])
 items.sort()
 taken = [False] * len(items)
 for i, item in enumerate(items):
 taken[i] = True
 for j, box in enumerate(boxes):
 if box[0] >= item:
 ______________________________
 break
 return [(box[1], sum(taken)) for box in boxes]
A

boxes[j] = (box[0] - item, boxes[j][1])

B

boxes[i] = (box[0] - item, boxes[j][1])

C

boxes[j] = (box[0] - item, boxes[i][1])

D

boxes[i] = (box[0] - item, boxes[i][1])

10
单选题号 #9586
分值 2

下列归并算法程序中,横线处应该填入的是( )。

def merge_sort(arr):
 if len(arr) <= 1:
 return arr
 mid = len(arr) // 2
 left = arr[:mid]
 right = arr[mid:]
 merge_sort(left)
 merge_sort(right)
 return merge(left, right)

def merge(left, right):
 result = []
 i, j = 0, 0
 ———————————————————————————————
 if left[i] < right[j]:
 result.append(left[i])
 i += 1
 else:
 result.append(right[j])
 j += 1
 result += left[i:]
 result += right[j:]
 return result
A

while i > len(left) and j < len(right):

B

while i len(right):

C

while i > len(left) and j > len(right):

D

while i < len(left) and j < len(right):

🔒

已解锁前 10 题

第 11~27 题(共 17 题)可在考试中作答
本卷为普通试卷:注册用户每题扣 1 积分(每日登录送 30 体验积分),交卷后查看答案与解析
海小星AI平台海小星AI平台

点亮AI梦想,编程未来之星。专业的青少年AI编程教育平台。

课程方向

  • AIGC人工智能
  • Scratch图形化
  • Python编程
  • C++/NOIP竞赛

联系我们

  • 北京市西城区万博苑7号楼3层F28室
  • +86-010-83553010
  • contact@seanova.cn

© 2026 海小星AI平台|京ICP备2022032747号

隐私政策服务条款