选择题 共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


编程题 共2道

36 37

264 | 202109Python四级真题-练习
选择题 共25道
01

对于数列3811151719253044,采用二分查找法查找8,需要查找多少次?

2分
登录后查看选项
02

下面哪一项不是pip指令?

2分
登录后查看选项
03

有如下Python语句,执行该语句后,结果是?

f=lambda x:5

print(f(3))

2分
登录后查看选项
04

执行如下Python代码后,结果是?

def inverse(s,n=0):     while s:

        n = n * 10 + s % 10

        s = s // 10

    return n

print(inverse(456,123))

2分
登录后查看选项
05

下列有关循环和递归的描述正确的是?

2分
登录后查看选项
06

以下有关Python函数的定义表述中错误的是?

2分
登录后查看选项
07


如下代码运行后下面选项中描述错误的是?

def pph(a,b):


  c=a**2+b

  b=a

  return c

a=10

b=100

c=pph(a,b)+a

print(a,' ',b,' ',c)

2分
登录后查看选项
08

阅读下列程序段,数列的第6项值为多少?

def fibona(x):

    if x==1 or x==2:

        f=1

    for i in range(3,x+1):

        f=fibona(x-1)+fibona(x-2)

    return f

n=int(input("请输入数列第几项:"))

m=fibona(n)

print("数列的第"+str(n)+"项的值为"+str(m))

2分
登录后查看选项
09

有如下Python的自定义函数,执行该程序后,结果是?( )

def  calc(x,y,op):

    return eval(str(x)+op+str(y))  

print(calc(3,5,'+'))

2分
登录后查看选项
10

有如下Python程序,执行该程序后,结果是?

x = 3

def  calc():

    x = 5

print(calc())

2分
登录后查看选项
11

应用分治算法的前提是?

2分
登录后查看选项
12

有一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地前,反弹多高?用递归函数解决,下面选项正确的是?

2分
登录后查看选项
13

有如下Python程序,执行该程序后,结果是?

g = lambda x,y=3,z=5:x+y+z

print(g(2))

2分
登录后查看选项
14

下面的程序输出1~100之间能被7整除但不能同时被5整除的所有整数。

k=1

while k<101:

   if k%7==0 and k%5 !=0:

       print(k)

   k += 1

根据下面哪个选项的方法优化后,程序的运行效率最高?

2分
登录后查看选项
15

下列程序段的运行结果为?(

def f(n):

    if n<=1:

         return 1

    else:

        return f(n-1)*3

print(f(5))

2分
登录后查看选项
16

下列选项中,关于如何安装第三方库的说法正确的是?

2分
登录后查看选项
17

运行以下程序输出的结果是?(

y=2

def fun():  

    global y  

    y=1  

    print(y)

fun()

print(y)

2分
登录后查看选项
18

下面哪种算法使用了分治的方法?

2分
登录后查看选项
19

下面关于递归函数说法正确的是?

2分
登录后查看选项
20

观察此题示例代码,以下表述中错误的是?

nums = range(2,20)

for i in nums:

    nums=list( filter(lambda x:x==i or x % i,nums))

print(nums)

2分
登录后查看选项
21

在一个平面中,有n个圆两两相交,但任二个圆不相切,任三个圆无公共点,以下函数能计算出n个圆把平面分成的区域个数,空格处填写的语句是?




 


def c(n):


    if n=1:


         return 2


    else:

         return                      

2分
登录后查看选项
22

有如下Python程序段,执行该程序后,结果是?

def fun(*p):

    return sum(p)

print(fun(1,3,5))

2分
登录后查看选项
23

以下关于全局变量和局部变量的表述正确的是?

2分
登录后查看选项
24

关于以下程序,下列表述中错误的一项是?

c=1

def fun(n):

    a=1

    for b in range(1,n):

        a*=b

    return a

n=int(input('Enter n='))

print(fun(n),c)

2分
登录后查看选项
25

以下程序的运行结果是?

def f(x,y,z):     print(x,y,z)

f(z=3,x=2,y=1)

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

所有的Python第三方库均可以使用pip工具进行安装。

2分
登录后查看选项
27

算法的时间复杂度与空间复杂度没有必然关系。

2分
登录后查看选项
28

在创建自定义函数时,即使函数没有参数,也必须保留一对空的"()"

2分
登录后查看选项
29

执行以下代码:

def fun( mylist ):

    mylist.append([1,2,3,4])

    print("函数内取值: ", mylist)

    return

mylist = [5,6,7]

fun( mylist )

print("函数外取值: ", mylist)

程序输出的结果为:函数内取值:  [5, 6, 7, [1, 2, 3, 4]]

            函数外取值:  [5, 6, 7, [1, 2, 3, 4]]。

2分
登录后查看选项
30

定义Python函数时,如果函数中没有return语句,则该函数返回值是None

2分
登录后查看选项
31

执行以下代码:

sum=0

def fun(arg1,arg2):

    sum=arg1+arg2

    print(sum)

    return sum

fun(5,10)

print(sum)

程序输出的结果为:15

            15

2分
登录后查看选项
32

对于一个复杂问题,如果所分解出的各个子问题之间相互不独立,则不适合使用分治算法。

2分
登录后查看选项
33

执行以下代码:

def fun( name, age = 30 ):

   print("Name:", name)

   print("Age:", age)

   return

fun( age=40, name="summy" )

fun( name="summy" )

程序输出的结果为:

Name: summy Age: 40

Name: summy

Age: 40。

2分
登录后查看选项
34

下列程序段运行后的结果是2

def change(a,b):

    a,b=b,a

    return a

a=2

b=3

print(change(change(a,b),a))

2分
登录后查看选项
35

对于斐波那契数列:11235……,我们只能采用迭代公式以递推的方式求解。

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

在编写抽奖程序时,为了保证一个人只有一次中奖机会,要检查新抽出来的数字是不是已经被抽中过了。

一种办法是将已经中过奖的人员编号存放在test_list里面,然后每抽出一个新的人员编号,判断它是否在中奖人员列表中。

如果没有在中奖人员列表中,说明中奖号码有效,并将它保存进中奖人员列表;如果已经在里面了,就再生成一个新的人员编号。

请你补全下面的代码,实现判断一个数字是否在列表中的功能。

#子问题算法(子问题规模为1

def is_in_list(init_list,num):

   if init_list[0] == num:

       return True

   else:

       return False

#分治法

def find_out(init_list,num):

   n = len(init_list)

   if ____①______          #如果问题的规模等于1,直接解决

       return is_in_list(init_list,num)

   #分解(子问题规模为n/2

   left_list,right_list = _________②____________

   #递归,分治,合并

   res=find_out(left_list,num) __③__ find_out(right_list,num)

   return res

if __name__ == "__main__":

   #测试数据

   test_list = [18,43,21,3,28,2,46,25,32,40,14,36]

   #查找

   print(_____④_____) 

程序运行结果:

>>>True

      

10分
登录后作答
37

乘法运算等于多个加法运算的和。比如,3×2可以理解为3+3,也可以理解为2+2+2

下面的程序使用递归算法演示了计算两个自然数的乘积的过程。请你补全代码。

输入:分两次输入自然数num1num2

输出:num1 × num2 = 乘积 def cheng_fa(num1,num2,value):

    if          ①             

        value += 0

    else:

        value += num1

                 ②         

        value = cheng_fa(num1,num2,value)

    return      ③        

num1=int(input('输入第1个数:'))

num2=int(input('输入第2个数:'))

value=0

value = cheng_fa(num1,num2,value)

print('{} X {} = {}'.format(num1,num2,value))

程序运行结果:

输入第1个数:3

输入第2个数:7

  3 X 7 = 21

10分
登录后作答