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

GESP Python 5级 2024.06

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

在Python中,print((c for c in "GESP"))的输出是( )。

A

('G', 'E', 'S', 'P')

B

['G', 'E', 'S', 'P']

C

{'G', 'E', 'S', 'P'}

D

以上选项均不正确

2
单选题号 #9740
分值 2

下面有关快速排序的说法,错误的是( )。

A

快速排序算法通常采用递归实现。

B

快速排序算法是一种稳定排序算法。

C

如果被排序数组或者list已排序或逆序,其时间复杂度是O(N2)O(N^2) 。

D

快速排序是一种原地(in-place)排序算法。

3
单选题号 #9741
分值 2

内排序有不同的类别,从排序算法的实现思路上考虑,下面哪种排序算法和插入排序是同一类?

A

希尔排序

B

快速排序

C

堆排序

D

冒泡排序

4
单选题号 #9742
分值 2

下面Python代码用于求斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。函数Fibo()属于()。

def Fibo(N):
 if N == 1 or N == 2:
 return 1
 fiboList = [1, 1]
 for i in range(2, N):
 fiboList.append(fiboList[i - 1] + fiboList[i - 2])
 return fiboList[N-1]
A

枚举算法

B

贪心算法

C

迭代算法

D

递归算法

5
单选题号 #9743
分值 2

下面Python代码用于将输入金额换成最少币种组合方案,其实现算法是( )。

def findCoins(coins, Money):
 coins_used = []
 for coin in coins:
 while Money >= coin:
 coins_used.append(coin)
 Money -= coin
 return coins_used

coins = [100, 50, 20, 10, 5, 2, 1] # 货币种类,单位相同
M = int(input()) # 输入换算的金额
coins_needed = findCoins(coins, M)

result = [(c, coins_needed.count(c)) for c in coins]
result = [x for x in result if x[1] > 0]
A

枚举算法

B

贪心算法

C

迭代算法

D

递归算法

6
单选题号 #9744
分值 2

有关下面Python的代码,错误的是( )。

def count_if(iterData, *, key=None):
 if key == None:
 return len(iterData)
 Count = 0
 for i in iterData:
 Count += bool(key(i))
 return Count
A

执行 print(count_if(range(100))) 将输出 100

B

执行 print(count_if(range(-10,10), key = abs)) 将输出 19

C

执行 print(count_if(range(-100,10),key = lambda x:x > 5)) 将输出 4

D

代码 Count += bool(key(i)) 存在错误

7
单选题号 #9745
分值 2

在下面的Python代码中,最后一行用于输出小于0的list,横线处不能填入的代码是( )。

def LT(a, b):
 return a < b

lstData = list(range(-100,100))
print(___________________________)

A

[x for x in lstData if x < 0 ]

B

list(filter(lambda x: x < 0, lstData))

C

list(filter(LT(x,0), lstData))

D

[x for x in lstData if LT(x, 0)]

8
单选题号 #9746
分值 2

汉字的unicode编码界于0x4E00和0x9FA5之间。下面Python的代码用于读取红楼们和水浒传文本。如果要能完整阅读这两本小说,求出需要认识的汉字集合,横线处应填入代码是( )。

shzFile = open("水浒传.txt", "r", encoding = "utf-8")
hlmFile = open("红楼梦.txt", "r", encoding = "utf-8")
sSet = set(shzFile.read())
hSet = set(hlmFile.read())
shzFile.close()
hlmFile.close()

print(________________________________)
A

{x for x in (sSet + hSet) if 0x4E00 <= ord(x) <= 0x9FA5 }

B

{x for x in (sSet | hSet) if 0x4E00 <= x <= 0x9FA5 }

C

{x for x in (sSet + hSet) if 0x4E00 <= x <= 0x9FA5 }

D

{x for x in (sSet | hSet) if 0x4E00 <= ord(x) <= 0x9FA5 }

9
单选题号 #9747
分值 2

求回文子字符串,如:在ABCDDCBAXz中,DD、CDDC、BCDDCB、ABCDDCBA均为回文子字符串。下面Python代码是其实现,横线处应填入的代码是( )。

srcStr = input()
symList = [] #保存回文子字符串
for i in range(len(srcStr)):
 for j in range(i + 2, len(srcStr) + 1):
 subStr = ___________
 if subStr == _____________:
 symList.append(subStr)
for i in sorted(symList, key = lambda x: len(x)):
 print(i)
A

srcStr[i:j] , subStr[::-1]

B

srcStr[i:j] , subStr[j:i:-1]

C

srcStr[i+2:j] , subStr[j-1:i:-1]

D

srcStr[i:j+2] , subStr[j-1:i-1:-1]

10
单选题号 #9748
分值 2

上面代码的时间复杂度是( )。

A

O(logN)O(logN)

B

O(NlogN)O(NlogN)

C

O(N)O(N)

D

O(N2)O(N^2)

🔒

已解锁前 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号

隐私政策服务条款