题号123456789101112131415
答案BCACCBCCADAAAAD
Python 五级
2024 年 12 月
1单选题(每题 2 分,共 30 分)
第 1 题 下面的程序中,x,y都是正整数,完成的算法是( )
A. 最小公倍数
B. 最大公约数
C. 数字x能够整除y的最小数
D. 数字x与数字y的所有公约数
第 2 题 下列程序中实现的是( )
A. 实现了求x,y的最小公约数
B. 实现了求x,y的最大公约数
C. 实现了求x,y的最小公倍数
D. 实现了求x,y的平均值
第 3 题 欧几里得算法又称作辗转相除算法,下面程序中是这种算法的是( )
A.
B.
def chenadai(x, y):
while y:
x, y = y, x % y
return x
1
2
3
4
def chenadai(x, y):
return x * y // (x,y的最大公约数)
1
2
def gcd(a,b):
if b == 0:
return a
return gcd(b, a % b)
1
2
3
4
C.
D.
第 4 题 下列程序是二分法的程序,横线处应该填上( )。
A.
B.
C.
def gcd(a, b):
if a < b:
a, b = b, a
while b != 0:
a,b = b,a%b
return b
1
2
3
4
5
6
def gcd(a,b):
if b == 0:
return a
return gcd(a, a % b)
1
2
3
4
def gcd(a,b):
if b == 0:
return a
return gcd(b, b % a)
1
2
3
4
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
_________________________
return -1
1
2
3
4
5
6
7
if arr[mid] == target:
return mid
elif arr[mid] > target:
right = mid - 1
1
2
3
4
if arr[mid] == target:
return mid
elif arr[mid] > target:
right = mid
else:
left = mid
1
2
3
4
5
6
D.
第 5 题 下面折半查找程序的时间复杂度为( )
A.
B.
C.
D.
第 6 题 下列程序中,使用了埃氏筛法,横线处应该填写的是()
A. for p in range(2, n ** 0.5 + 1):
B. for p in range(2, int(n ** 0.5) + 1):
C. for p in range(2, int(n ** 0.5) + 0.5):
if arr[mid] == target:
return mid
elif arr[mid] > target:
right = mid - 1
else:
left = mid + 1
1
2
3
4
5
6
if arr[mid] == target:
return mid
else:
left = mid + 1
1
2
3
4
def binary_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
GESP 2024年12月认证 Python 5级真题