选择题 共25道

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25


判断题 共10道

26 27 28 29 30 31 32 33 34 35


编程题 共3道

36 37 38

254 | 202312Python四级真题-考试
选择题 共25道
01




下列有关分治算法思想的描述不正确的是?( )


2分
登录后查看选项
02

斐波那契数列前n项是1,1,2,3,5,8,13......

补全下面程序代码,求第n项斐波那契数列的值。

def fib(n):

    if ______:

        return 1

    else:

        return fib(n-1) + fib(n-2)

2分
登录后查看选项
03

用分治法求两个数的最大公约数,代码和运行结果如下,请选择合适的代码完成程序?( )
def fun(m, n):
   if m % n == 0:
       return n
   else:
       return __________
print(fun(98, 56))
程序运行结果如下:
14

2分
登录后查看选项
04

列出第三方库的详细信息的pip指令是?( )

2分
登录后查看选项
05

想要在Python中导入math模块中的sqrt(x)函数,下列程序段错误的是?( )

2分
登录后查看选项
06

关于求解“找出所有满足各位数字之和等于8的三位数”时,在下列数值范围内,算法执行效率最高的是?( )

2分
登录后查看选项
07
已知,从1到n的连续自然数相乘的积叫做阶乘,用符号n!表示,比如3!=1×2×3,规定0!=1。那么用递归算法求n的阶乘,递归式正确的是?( )


2分
登录后查看选项
08

n为6时,运行下列Python程序后的结果是?( )
def f(n):
    if n<=2:
         return 1
    else:
         return f(n-1)+f(n-2)
n=int(input("请输入一个正整数:"))
print(f(n))

2分
登录后查看选项
09

下列程序中,当n=4时,返回结果为?( )
def x(n):
       if  n==1:
              return 1
       else:
              return n+x(n-1)

2分
登录后查看选项
10

下列选项中,不属于递归特性的是?( )

2分
登录后查看选项
11

对于下列递归式子,当n=4时,F的值是?( )
F(n)=F(n-1)*2
F(1)=2

2分
登录后查看选项
12

下面函数实现的功能是?( )
def   mi(x, n):
   if   n == 0:
         return  1
   else:
         return  x*mi(x, n-1)

2分
登录后查看选项
13

def afun(n):
   s=1
   for i in range(1,n+1):
       s*=i
   return s
对以上代码解释错误的是?( )

2分
登录后查看选项
14

关于下列代码解释错误的一项是?( )
def ZhongYao(a:str,b:int)->str:
   word=a*b
   print('重要的事情说{}遍:{}'.format(b,word))
   return ZhongYao
ZhongYao('学习','3')

2分
登录后查看选项
15

下列代码的运行结果是?( )
def exchange(a,b):
   a,b=b,a
   print(a,b)
a,b=3,5

exchange(a,b)

print(a,b)


2分
登录后查看选项
16

下列代码的运行结果是?( )
def car_show(cars):
   for car in cars:
       print('good',car)
car_show(['BYD','Haval','Wuling'])

2分
登录后查看选项
17

函数中定义了4个参数,其中2个参数都指定了默认值,见下面代码,那么在调用函数时

参数个数最少是?( )
def SiBianXing(a,b,c=5,d=8):
   ZhouChang=a+b+c+d
   return ZhouChang
SiBianXing( ? )

2分
登录后查看选项
18

执行如下程序,以下选项中哪一项是错误的?( )

def f(a,b):

   c=a+b*2

   b=a

   return c

a=1

b=2

c=f(a,b)+b

2分
登录后查看选项
19

以下哪种情况下的代码块适合设计成函数?( )

2分
登录后查看选项
20

使用位置实参的方式调用函数时,下列哪种情况下程序一定会出错?( )

2分
登录后查看选项
21

下列函数定义中,正确的是?( )

2分
登录后查看选项
22

调用函数的时候,所使用的参数是?( )

2分
登录后查看选项
23

对于如下自定义的函数:

def myfunc(a,b,c):

    return a+b+c

以下调用该函数的语句中,能正确执行的是?( )

2分
登录后查看选项
24

使用*args和**kwargs形参来定义函数时,正确的说法是?( )

2分
登录后查看选项
25

关于函数参数的默认值设置,描述不正确的是?( )

2分
登录后查看选项
判断题 共10道
26

分治算法是把一个大问题分解为若干个规模较小、性质相同的子问题。最后子问题

可以简单地直接求解,将所有子问题的解合并起来就是原问题的解。( )

2分
登录后查看选项
27

pip联网直接下载安装第三方库时,只能临时更换下载源,不能更改默认的下载源。( )

2分
登录后查看选项
28

运行以下代码的时间复杂度为O(n2)。( )

k=0

n=11

for i in range(n):


   k=k+1

for j in range(n):



2分
登录后查看选项
29

对于递归而言,递推与回归,二者缺一不可。( )

2分
登录后查看选项
30

递归算法必须确保,需要解决的问题可以转化为一个或多个子问题来求解,这些子问题的求解方法与原问题相同,只是在数量和规模上不同,而且每次递归调用时,问题规模都能够缩小。( )

2分
登录后查看选项
31

当函数运行结束后,局部变量的值依然存在,下次函数调用可以继续使用。( )

2分
登录后查看选项
32

内置函数不需要使用关键字import导入就可以使用,自定义函数可以先调用后定义。( )

2分
登录后查看选项
33

编程时,需要把实现复杂功能的代码封装起来,设计成函数。( )

2分
登录后查看选项
34

将实现特定功能的代码块设计成函数,有助于提高整个程序的运行速度。( )

2分
登录后查看选项
35

如果允许形参设置默认值,则函数定义时要先列出没有默认值的形参,再列出有默认值的形参。( )

2分
登录后查看选项
编程题 共3道
36

统计高分问题

小张在学习对分查找后,想利用该思路来实践一下,加深对该算法的理解。于是他按老师的要求,统计期末考试成绩,总分比他高的同学有多少个?

他的思路是,首先将全区所有学生的成绩降序排序,然后利用对分查找思想解决。他编写的代码如下,请完善划线处的代码。

cj =[654,643,621,612,609,606,...]#学生成绩存列表cj并已经降序排序

def dfsearch(key):
       i =0; j=len(cj)-1
      while i<=j:
             m =(i+j)//2
             if cj[m]>key:
                                
              else:
                    j-= 1
      return                   
key = int(input('输入待查找的成绩'))
pos =                
print('高于',key,'分的人数有',pos)

10分
登录后作答
37

比岁数问题


有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。


最后问第一个人,他说是10岁。请问第五个人多大?

请运用递归算法完成以下代码。

def age(n):

    if         ①        :

        c = 10

    else:

        c =        ②        

    return c

print(age(        ③        ))

10分
登录后作答
38

数学证明问题


上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。按此规则进行下去,经过若干步的计算就能得到自然数1。这个数学现象至今都没有得到完全的证明,但是可以编程来验证它的正确性。


实现上述功能的部分程序代码如下,请补充完成空白处的内容。


step = 1


midlist = []


 


def subwork(n):


    global step


    if n == 1:


        return step


    elif n % 2 == 0:                                                                                               


        n =         ①          


        midlist. append(n)    


        step +=  1


        subwork(        ②        ) 


        return step


    elif n % 2 != 0:


        n =         ③              


        midlist.        ④         


        step +=  1


        subwork(        ⑤        )  


        return step


   


cur_num = int(input("请输入一个数字:"))


subwork(cur_num)


print(midlist)


print(step)

10分
登录后作答