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种爬法。"%(   ④   ,   ⑤   ))