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

259 | 202206Python四级真题-练习
选择题 共25道
01
有如下Python程序,包含lambda函数,运行该程序后,输出的结果是?( )g = lambda x,y:x*yprint(g(2,3))


2分
登录后查看选项
02

运行下列程序,输出的结果是?( )
def dtox(x,base = 2):
   s = []
   while x>0:
       s.append(x % base)
       x = x // base
   return s
print(dtox(11))


2分
登录后查看选项
03

下列哪项不是函数的优点?( )

2分
登录后查看选项
04

下列关于函数的描述正确的是?( )

2分
登录后查看选项
05

Python中自定义函数的关键字是?( )

2分
登录后查看选项
06

运行下列程序,输出的结果是?( )
def nxs(x):
   s = 0
   while x:
       s = s * 10 + x % 10
       x //= 10
   return s

print(nxs(106))

2分
登录后查看选项
07

Python编写的自定义函数dy,执行该程序段后,输出的结果是?( )
def dy(x,y):
   return x>y
print(dy(10,20))

2分
登录后查看选项
08

在函数中有一种叫空函数。 构造一个空函数,下面的横线处应填?( )

def  函数名( ):
    ______________

2分
登录后查看选项
09

下列代码的输出结果是?( )
def fun(a,b):
   t = a
   a = b
   b = t
   print(a, b)
fun(pow(3,2),pow(2,3))   #pow(x,y)返回x**y的值

2分
登录后查看选项
10

函数中用return [表达式] 结束函数,选择性地返回一个值给调用方,有时不带表达式的return相当于返回?( )

2分
登录后查看选项
11

对于下面的函数:
def f(x,z,y=2):
   print(x+y+z)
用f(1,2,3)和f(1,2)两个调用语句,运行结果分别是?( )

2分
登录后查看选项
12

下列这段程序的打印结果是?( )

def demo(item,lis=[]):
   lis=[]
   lis.append(item)
   return lis
print(demo('a'),end='')
print(demo('b'))

2分
登录后查看选项
13
函数如下:
def showNumber(numbers):
   for n in numbers:
       print(n)
下面哪个选项在调用该函数时会报错?( )


2分
登录后查看选项
14

下列关键字中,用来导入第三方库的是?( )

2分
登录后查看选项
15

以下选项中,不属于第三方库安装工具pip能够实现的功能是?( )

2分
登录后查看选项
16

关于评价算法的优劣,以下说法正确的是?( )

2分
登录后查看选项
17

下列程序实现求菲波那契数列第4项的值:

def f(n):
   if n==1 or n==2:
       return 1
   elif n>2:
       return f(n-1)+f(n-2)
   else:
       return -1
print(f(4))


请问:这种解决方法属于哪种算法?( )

2分
登录后查看选项
18

著名的菲波那契数列为1,1,2,3,5,8,……。即除开始的两项为1外,其余每一项均为前两项之和。
下面的程序实现计算该数列的第4项值的大小。
n,a,b=4,1,1
if n==1:
   print("第%d个数为%d。"%_____(1)______)
if n==2:
   print("第%d个数为%d。"%(n,b))
if n>2:
   for i in range(2,n):
       result=a+b
       a,b=b,result
print("第%d个数为%d。"%(n,result))

请问:横线(1)所在位置不适合填入以下哪个选项?( )

2分
登录后查看选项
19
   if n==1:
       return 1
   else:
       return f(n-1)+(n-1)*f(n-1)


2分
登录后查看选项
20

已知Pell数列定义如下:


第5项的值是?( )


2分
登录后查看选项
21

运行下列程序,输出的结果是?( )

def Pell(n):
   if n==1:
       return 1
   if n==2:
       return 2
   if n>=3:
       return 2*Pell(n-1)+Pell(n-2)
print(Pell(4))

2分
登录后查看选项
22

运行下列程序,输出的结果是?( )

def f(n):

   if n==1 or n==2:
       return 1
   elif n>2:
       return f(n-1)+f(n-2)
   else:
       return -1

print(f(-2))

2分
登录后查看选项
23

在1-20之间玩猜数字的游戏时,如果采用二分法的策略,并且给‘大了’或‘小了’的提示,最差的情况下多少次就可以猜中?( )

2分
登录后查看选项
24

下列选项中,哪一项不是分治算法的特征?( )

2分
登录后查看选项
25

下列排序算法中利用了分治算法思想的是?( )

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

Python中自定义函数的代码需要写在调用该函数之前。( )

2分
登录后查看选项
27
Python定义函数时,可选参数必须写在非可选参数后面。( )


2分
登录后查看选项
28

Python中编写函数时,必须指明该函数的返回值。( )


2分
登录后查看选项
29

用户自定义函数是用户自己写的一段程序,一般包括函数名、参数、返回值、函数体等四部分。其中,函数名和参数是必不可少的部分。( )

2分
登录后查看选项
30

自定义函数def块中的代码不是主程序的一部分,运行会跳过该段代码。( )

2分
登录后查看选项
31

算法优化主要是为了减少冗余数据,优化时间复杂度和空间复杂度。( )

2分
登录后查看选项
32

在Python中使用爬虫技术抓取网站信息需要用到第三方库。( )

2分
登录后查看选项
33

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

2分
登录后查看选项
34

递归算法跟递推算法是一样的,都在重复调用。( )

2分
登录后查看选项
35

使用分治算法解决问题的一般步骤是分解、求解、合并。( )

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

字符加密。将大写字母逐个按其ASCII值转换为7位二进制数,并在最左边补0,使得每个字母转换为8位二进制数,然后将8位二进制数每四位转为十六进制数。如明文是"CIE",加密后的密文是"434945"。编写的python程序如下,完善划线处的代码。 

def xtob(n): #将整数转为二进制数 

    if n <= 1: 

        return str(n) 

    return  xtob(n//2)+    

mingwen = "CIE" 

he = '0123456789ABCDEF' 

rst = '' 

for c in mingwen:

   s = "0" + xtob(ord(c)) #将明文转为8位二进制数 

   i = 0 

   data = 0

   while i < 8:

      data =data * 2 +    

      if (i + 1) % 4 == 0: 

          rst = rst + he[data] 

          data = 0 

           

print('密文是:',rst)

10分
登录后作答
37

辗转相除法求最大公约数,下列函数是用递归算法实现的,请完善横线处的代码。

def gcd(a,b):
    m=a%b
    if m==0:
        return           
    else:
        a=b
                  
        return            

print(gcd(12,18)) 

10分
登录后作答
38

下面的程序运用分治算法寻找列表中的最大值。请将空格补全代码。

#子问题规模小于或等于2时
def zui_da_zhi(a_list):
    if      :
        if a_list[0]>=a_list[1]:
            most=a_list[0]
        else:
            most=a_list[1]
    else:
        most=a_list[0]
    return most
# 分治算法排序
def fen_zhi(init_list):
    n=len(init_list)
    if n<=2:                  #若问题规模小于或等于2,解决
        return zui_da_zhi(init_list)
    #分解(子问题规模为n/2)
    left_list,right_list=      
    #递归,分治
    left_max,right_max=      
    #合并
    return zui_da_zhi([left_max,right_max])

#测试数据
test_data=[12,25,4,47,69,5,4,6,37,89,21]
print('最大值为:',fen_zhi(test_data))

10分
登录后作答