202209Python四级真题
1.单选题
13.下列程序是分治算法的典型应用,其运行结果是?( )
def dividAndConquer(arr,left,right):
if (right == left + 1) or (right == left):
return max(arr[left],arr[right])
mid = int((left + right) / 2)
leftMax = dividAndConquer(arr,left,mid)
rightMax = dividAndConquer(arr,mid,right)
return max(leftMax,rightMax)
arr1 = [8, 1, 14, 19, 5]
print(dividAndConquer(arr1,0,4))
A.1
B.19
C.8
D.5
2.判断题
3.编程题
1.验证哥德巴赫猜想:任意一个大于等于4的偶数总可以分解为两个素数之和。请在下面的横线上补全代码,使得通过键盘输入一个偶数x(x<1000,输出这两个素数。如果有多组解,只需要输出一组,并且第一个素数要尽可能地小。例如,输入“10”,输出“3 7“;输入“18”,输出“5 13”。
def prime(x):
for i in range(2, x):
if x%i == 0:
return ①
return 1
x=int(input("输入一个偶数x:"))
for k in range( ② ,x//2+1):
if prime(k) and prime( ③ ):
print( ④ )
break
2.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数,例如12321、765567就是回文数。请补全下列代码,编程实现用分治的方法判断一个整数是否是回文数。
def ispel(s):
num = len( ① )
if num == 0:
return False
if num == 1:
return True
if num == 2:
return s[0] == ②
else:
return s[0] == s[num - 1] and ispel(s[1: ③ ])
st = input("请输入一个整数:")
if ④ == True:
print("输入的是回文数")
else:
print("输入的不是回文数")
3.小青蛙爬楼梯。楼梯有n级。小青蛙每次只能爬1级或2级。
当楼梯只有1级时,青蛙只有1种爬法。
当楼梯有2级时,青蛙有2种爬法:一次爬2级;一次爬1级,爬2次。
请从键盘上接收楼梯级数n,输出青蛙有几种爬法。
示例输入
请输入楼梯级数:8
示例输出
8级楼梯共有34种爬法。
程序如下:
def Climb(n):
if ① :
return 1
elif n==2:
②
else:
return ③
n=int(input("请输入楼梯级数:"))
if n>0:
print("%d级楼梯共有%d种爬法。"%( ④ , ⑤ ))