选择题 共15道

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


判断题 共10道

16 17 18 19 20 21 22 23 24 25


编程题 共2道

26 27

436 | 202406GESP Python五级试卷-考试
选择题 共15道
01

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

2分
登录后查看选项
02

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

2分
登录后查看选项
03

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

2分
登录后查看选项
04

下面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]


2分
登录后查看选项
05

下面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 = find_coins(coins, M)


result = [(c,coins_needed.count(c)) for c in coins]

result = [x for x in result if x[1] > 0]

2分
登录后查看选项
06

有关下面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

2分
登录后查看选项
07

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

def LT(a, b):

   return a < b


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

print(___________________________)


2分
登录后查看选项
08

汉字的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(________________________________)

2分
登录后查看选项
09

求回文子字符串,如:在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)

2分
登录后查看选项
10

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

2分
登录后查看选项
11

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

def Sort(lst):

   for i in range(1, len(lst)):

       key = lst[i]

       j = i - 1

       while j >= 0 and key < lst[j]:

           lst[j + 1] = lst[j]

           j -= 1

       lst[j + 1] = key

lst = [4,5,13,2,7,10,1,3,8,11,6,9,12]

lst = Sort(lst)

print("sorted list:", lst)

2分
登录后查看选项
12

下面Python函数nGram()用于逐一从字符串中截取n个字符,如:nGram("ABCDEF",2)将逐一截取为AB、

BC、CD、DE、EF,如:nGram("ABCDEF",3)将逐一截取为ABC、BCD、CDE、DEF,并统计每种截取的数量,横线处应填入代码是( )。


def nGram(S,n):

   Result = {}#保存截取字符串及其数量

   for i in range(________________):

   nChar = ________________

   Result[nChar] = Result.get(nChar,0) + 1

return Result

2分
登录后查看选项
13

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

2分
登录后查看选项
14

下面是埃氏素数筛的Python实现,横线上应填入的代码是( )。

def listPrime(N):

   primeList = list(range(N+1))

   primeList[0] = primeList[1] = False

   for i in range(2,int(N ** 0.5) + 1):

       if primeList[i] != False:

           for j in range(_____________):

               primeList[j] = False

   return [x for x in primeList if x != False]

2分
登录后查看选项
15

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

2分
登录后查看选项
判断题 共10道
16

在程序设计中,i * i的效率通常比i ** 2 更高。( )

2分
登录后查看选项
17

求解指定正整数范围内所有质数,采用线性筛算法比埃氏筛效率更高。( )

2分
登录后查看选项
18

Python没有指针语法,不能实现C++中涉及指针的算法。( )

2分
登录后查看选项
19

如果将双向链表的最后一个元素指向第一个元素,则构成环状链表。( )

2分
登录后查看选项
20

链表不能采用快速排序或堆排序,但可以采用插入排序。( )

2分
登录后查看选项
21

在Python中,set或dict因为存储时即自动排序,因此可以用二分法查找,时间复杂度为 O(logN)。( )

2分
登录后查看选项
22

如果自定义class已经定义了 __lt__() 魔术方法,则包含该类实例的数据结构,则将自动支持内置函数sorted()。( )

2分
登录后查看选项
23

归并排序和快速排序都采用递归实现,也都是不稳定排序。( )

2分
登录后查看选项
24

下面的Python代码能实现十进制正整数N转换为2、8、10、16,可适用于16进制以内进制。其中n和ds分别表示将转换的数以及目标进制。( )

n,ds = map(int,input().split())

rst = "" #保存转换结果


digDict = {i:c for i,c in enumerate("0123456789ABCDEF")}

while n != 0:

   rst = digDict[n % ds] + rst

   n //= ds

print(rst)

2分
登录后查看选项
25

Python代码 print(sorted(range(10),key=lambda x:x%5)) 执行时将报错。( )

2分
登录后查看选项
编程题 共2道
26

25分
登录后作答
27

25分
登录后作答