GESP Python 5级 2023.12
通讯卫星在通信网络系统中主要起到()的作用。
信息过滤
信号中继
避免攻击
数据加密
小杨想编写一个判断任意输入的整数N是否为素数的程序,下面哪个方法不合适?
埃氏筛法
线性筛法
二分答案
枚举法
内排序有不同的类别,下面哪种排序算法和冒泡排序是同一类?
希尔排序
快速排序
堆排序
插入排序
下面Python代码用于求斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。下面有关说法错误的是
def fiboA(N):
if N == 1 or N == 2:
return 1
return fiboA(N - 1) + fiboA(N - 2)
def fiboB(N):
if N == 1 or N==2:
return 1
last2,last1=1,1
for i in range(2,N):
nowval = last1 + last2
last2,last1 = last1,nowVal
return nowVal
fiboA( ) 用递归方式, fiboB() 循环方式
fiboA( ) 更加符合斐波那契数列的数学定义,直观易于理解,而 fiboB() 需要将数学定义转换为计算机程
序实现
fiboA( ) 不仅仅更加符合数学定义,直观易于理解,且因代码量较少执行效率更高
fiboB( ) 虽然代码量有所增加,但其执行效率更高
下面Python代码以递归方式实现合并排序,并假设 merge(left,right) 函数能对有序(同样排序规则)的
left 和 right 排序。横线处应填上代码是
def mergesort(listData):
if len(listData) <= 1:
return listData
Middle = len(listData)//2
Left,Right = _________________________
return merge(Left,Right)
mergeSort(listData[:Middle]), mergeSort(listData[Middle:])
mergeSort(listData[:Middle-1]), mergeSort(listData[Middle+1:])
mergeSort(listData[:Middle]), mergeSort(listData[Middle+1:])
mergeSort(listData[:Middle-1]), mergeSort(listData[Middle:])
阅读下面的Python代码,执行后其输出是
stepCount = 0
def countIt(Fx):
def wrapper(*args,**kwargs):
rtn = Fx(*args,**kwargs)
global stepCount
stepCount +=1
print(stepCount,end="->")
return rtn
return wrapper
@countIt
def fracA(N):
rtn = 1
for i in range(1,N+1):
rtn *=i
return rtn;
@countIt
def fracB(N):
if N == 1:
return 1
return N*fracB(N-1)
print(fracA(5),end="")
print("",end="")
print(fracB(5))
1->1202->120
1->1201->120
1->1201->2->3->4->5->120
1->1202->3->4->5->6->120
下面的Python用于对 lstA 排序,使得偶数在前奇数在后,横线处不应填入
def isEven(N):
return N % 2 == 0
lstA = list(range(1,100))
lstA.sort(_________________)
key = not isEven
key = lambda x: isEven(x), reverse = True
key = isEven, reverse = True
key = lambda x: not isEven(x)
下面的Python代码用于排序 sA 字符串中每个字符出现的次数(字频), sA 字符串可能很长,此处仅为示例。排序要求是按字频降序,如果字频相同则按字符的ASCII升序,横线处应填入代码是
sA = "Simple is better than complex"
charCount={}#每个字符对应数量
for c in sA:
charCount[c] = charCount.get(c,0) + 1
print(sorted(__________________________
))
charCount, key = lambda x:(-x[1],x[0])
charCount.items(), key = lambda x:(-x[1],ord(x[0]))
charCount.items(), key = lambda x:(x[1],-ord(x[0]))
触发异常,不能对字典进行排序。
有关下面Python代码正确的是
isEven = lambda x:x % 2 == 0
def isOdd(N):
return N % 2 == 1
print(type(isEven) == type(isOdd),isEven(10),isOdd(10))
True True False
False True False
False False True
触发异常
下面的Python代码实现对 list 的快速排序,有关说法,错误的是
def qSort(lst):
if len(lst) pivot]
return__________________
qSort(less) + qSort(greater) + [pivot]
[pivot] + qSort(less) + qSort(greater)
qSort(less) + [pivot] + qSort(greater)
qSort(less) + pivot + qSort(greater)
