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

GESP Python 5级 2024.03

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

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填入
1712475775809.png

A

(yr % 400 == 0) or (yr % 4 == 0)

B

( yr % 400 == 0) or (yr % 4 == 0 and yr %100 != 0)

C

( yr % 400 == 0) and ( yr % 4 == 0)

D

(yr % 400 == 0) and (yr % 4 == 0 and yr % 100 != 0)

2
单选题号 #9879
分值 2

在TCP协议中,完成连接建立需要通过( )握手。

A

一次

B

二次

C

三次

D

四次

3
单选题号 #9880
分值 2

下面有关排序算法的说法,正确的是

A

快速排序是稳定排序

B

Python中list类型的sort()是稳定排序

C

冒泡排序是不稳定排序

D

归并排序是不稳定排序

4
单选题号 #9882
分值 2

不同的排序算法,其空间复杂度也不同。与冒泡法排序空间复杂度相同的是

A

归并排序

B

快速排序

C

计数排序

D

插入排序

5
单选题号 #9884
分值 2

下面Python代码中,aFactorial()和bFactorial()用于求正整数的阶乘。有关说法,错误的是

def aFactorial(N):
 rst = 1
 for i in range(1,N + 1):
 rst *=i
 return rst

def bFactorial(N):
 if N == 1 or N == 0:
 return 1
 return N * bFactorial(N-1)

print(aFactorial(10),bFactorial(10))
A

aFactorial( )用循环方式,bFactorial()递归方式

B

bFactorial( )更加符合数学定义,直观易于理解,而aFactorial()需要将数学定义转换为计算机程序实现

C

当N值较大时,aFactorial( )执行效率更高,而bFactorial()因为有多次函数调用,效率将降低,且N如果较大,
将可能导致不能使用

D

bFactorial( )因为代码量较少,没有循环,因此其执行效率更高

6
单选题号 #9886
分值 2

有关下面Python代码的说法,正确的是

def qSort(1st):
 if len(lst) Pivot]
 return qSort(Less) + [Pivot] + qSort(Greater)

1stA = [1,2,11,12,21,21,2,3,41,4,3]
lstB = qSort(1stA)
print(1stA,1stB)
A

代码中qSort()函数不是稳定排序

B

代码中qSort()函数空间复杂度为O(1)

C

代码中qSort()函数是就地排序

D

代码中qSort()函数是外排序,因为排序后的结果保存在新的内存空间即外空间

7
单选题号 #9888
分值 2

上题不能支持其他常见类型的排序,如实现该支持,横线处分别应填写代码是

def qSort(iterData):

 if________________:
 ________________
 else:
 lst = iterData

 if len(1st) Pivot]
 return qSort(Less) + [Pivot] + qSort(Greater)

tp1A = (1,2,11,12,21,21,2,3,41,4,3)

lstB = qSort(tplA)
print(tplA,1stB)
A

isinstance(iterData, list) == False , st == [x for x in iterData]

B

type(iterData) == list , lst = [x for x in iterData]

C

isinstance(iterData, list) , lst = list(iterData)

D

type(iterData) != list , lst = list(iterData)

8
单选题号 #9890
分值 2

上上题qSort()函数不支持排序规则函数,形如sorted()函数的key参数,为实现类似目标,横线处分别应填入代码是( )。

def qSort(1st,fx = None):

 if len(1st) Pivot]
 return qSort(Less,fx) + [Pivot] + qSort(Greater,fx)

1stA = [1,2,11,12,21,21,2,3,41,4,3]

1stB = qSort(1stA,lambda x:x % 10)
print(1stA,lstB)
A

fx == None , fx(x) >= fx(Pivot) , fx(x) < fx(Pivot)

B

fx == None , fx(x) >= Pivot , fx(x) < Pivot

C

fx != None , fx(x) >= fx(Pivot) , fx(x) < fx(Pivot)

D

fx != None , fx(x) >= Pivot , fx(x) < Pivot

9
单选题号 #9893
分值 2

下面的Python代码中merge()函数的两个参数均为list类型,且是已按相同规则排序的数据。下面有关说法中,正确的是

def merge(arr1,arr2):
 result = []
 while arr1 and arr2:
 if arr1[0] < arr2[0]:
 result.append(arr1.pop(0)) 
 else:
 result.append(arr2.pop(0))
 if arr1:
 result += arr1
 if arr2:
 result += arr2
 return result
A

第3-7行代码将导致死循环,因为没有循环变量及其改变

B

第5行和第7行代码执行后,result的成员值为None

C

第9行和第11行是否被执行,与arr1和arr2的成员值有关,如果值转换为False,将不会被执行

D

merge()函数的代码没有错误,执行后参数arr1和arr2将合并成新的list保存到result之中,且有序

10
单选题号 #9895
分值 2

阅读下面Python代码,横线处应填入

def Check(N,Fx):
 return Fx(N)
def isodd(N):
 return "偶数" if N % 2 == 0 else "奇数"

isEven = 1ambda N:"偶数" if N % 2 == 0 else "奇数"

print(Check(10,________________),Check(11,________________))
A

isOdd , isEven

B

isOdd , isEven(10)

C

isOdd(10) , isEven

D

isOdd(10) , isEven(10)

🔒

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

隐私政策服务条款