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

251 | 202303Python四级真题-练习
选择题 共25道
01

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

def wenhao(name = 'zhejiang'):
   print('hello' + name)
wenhao()

2分
登录后查看选项
02

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

rst = lambda a,b=5:a*b

print(rst(5))

2分
登录后查看选项
03

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

def jsarea(r, PI = 3.14):
    area = PI * r * r
print(jsarea(1))

2分
登录后查看选项
04

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

def js(n):
   s = 0
   while n:
       s = s * 10+n % 10
       n //= 10
   return s
print(js(20230110))

2分
登录后查看选项
05

在传递信息的过程中, 通常会将一些敏感信息进行加密,以下是对数据进行加密的Python程序段,若输入数据为“cie0108”,则输出的结果是?( )

def jm(t):
   s = ""
   for ch in t:
       if "0" <= ch <= "9":
           x = int(ch) + 3
           if x >= 10:
               x = x % 10
           ch = str(x)
       s = s + ch
   return s
print(jm('cie0108'))

2分
登录后查看选项
06

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

s = 0
def f(n):
   global s
   for i in range(n):
       s = s + i
   return s
print(f(f(3)))

2分
登录后查看选项
07

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

def jsh(n):
   if n == 1:
       return 1
   else:
       return n + jsh(n-1)
print(jsh(10))

2分
登录后查看选项
08

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

def fun(s):
   if len(s) == 1:
       return s
   else:
       return fun(s[1:]) + s[0]
print(fun('CIE2023'))

2分
登录后查看选项
09

下列有关递归的描述中,正确的是?( )

2分
登录后查看选项
10

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

def leijia(x):
   x += 1
   return x
x=10
y=leijia(x)
print(y)

2分
登录后查看选项
11

关于分治算法特征的描述中,错误的是?( )

2分
登录后查看选项
12

张老师有n(范围在1到15之间)个礼物分给同学们,他请同学们猜礼物的数量,请问同学们猜几次后肯定知道礼物的数量(不算运气成分第1次或第2次就猜到)?( )

2分
登录后查看选项
13

下列排序算法中,时间复杂度最小的是?( )

2分
登录后查看选项
14

小方要在程序中生成[10,99]之间的随机整数,下列程序不能实现的是?( )

2分
登录后查看选项
15

下列哪个关键字可用来创建自定义函数?( )

2分
登录后查看选项
16

在 Python 语言中,求列表长度用下列哪个函数?( )

2分
登录后查看选项
17

下列关于函数返回值的描述中,正确的是?( )

2分
登录后查看选项
18

下列有关自定义函数的描述,正确的是?( )

2分
登录后查看选项
19

运行下列程序,输出的结果是?( )
Sum=1
for i in range (1,5):
   Sum=Sum*i
print(Sum,i)

2分
登录后查看选项
20

关于下列代码的描述,错误的是?( )
def fact(n):
   s=1
   for i in range(1,n+1):
       s*=i
   return s

2分
登录后查看选项
21

某人将自己密码旅行箱的密码遗忘了。当事人记起密码是一个三位自然数,并且密码个位数是8,其它位含1但不能确定是哪一位。请将所有可能的密码遍历出来。

请完成程序并运行?( )

for x in range(100,__ ①__): #三位密码的范围

        if ____ ②___ and "1" in str(x): #符合条件的密码

                print(x)

2分
登录后查看选项
22

甲同学第一天跳绳100下,第二天开始每天增加5下;乙同学第一天跳绳100下,每隔一天增加10下。计算30天两人的跳绳总数。

甲的跳绳数:100、105、110、115、120……

乙的跳绳数:100、100、110、110、120……

请补全程序代码?( )

a=100    #甲同学第一天跳绳次数

b=100    #乙同学第一天跳绳次数

x=a      #甲同学累计跳绳次数,初始值是第一天的次数

y=b      #乙同学累计跳绳次数,初始值是第一天的次数

#从第二天开始迭代计算

for i in range(2,31):

   a=     ①           #甲同学每天增加5次

   if i%2==1:    #当天数为奇数时

       b=     ②       #乙同学增加10次

   x=x+a

   y=y+b

print("甲同学30天跳绳",x,"下")

print("乙同学30天跳绳",y,"下")

2分
登录后查看选项
23

用递归算法计算10的阶乘10!的值#自定义阶乘函数。自定义函数fact(n)是求n的阶乘。

10!=1×2×3×…×10

请补全程序代码?( )

#自定义函数

def fact(n):      #求阶乘

   if(n==1):     #终止条件

       return 1  #结束递归

   else:         #递归条件

       p=__①____  #调用递归(自身)

       return p  #返回乘积

#主程序

print("10!=",fact(10))  #调用递归

2分
登录后查看选项
24

用分治法查找列表中是否存在指定的数字。给定的列表已升序排序。请补全程序代码?( )

#在列表cards中查找数字x,返回下标值,若未找到,返回-1

def serch(cards=list,x=int):

   a=0             #定义左端点下标

   b=len(cards)-1  #定义右端点下标

   #逐级分割查找范围,缩小查找规模

   while a<=b:

       m=(a+b)//2       #定义中点下标

       if x==cards[m]:  #x刚好等于中点值

           return m

       elif     ①     : #x<中点值,说明x位于左段位置

           b=m-1        #重新定义右端点

       else:

           a=m+1        #重新定义左端点

   return -1            #未找到,返回-1

#主程序

#在列表d中查找用户输入的数字r

d=[1,6,16,24,44,46,79,80,81,82,87,102,134,151,156,188,196,202,212,226,228,248,272,274,286,306,321,351,363]

print(d)    #显示一下列表d

r=int(input("请输入要查找的数字:"))

y=serch(d,r)  #调用子函数,d,r是实参

if y>=0:

   print("已找到",r,",它是列表中第",y+1,"个数字")

else:

   print("未找到",r)

2分
登录后查看选项
25

下列不属于Python数据分析与可视化第三方库的是?( )

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

关键字实参通过“关键字=值”的方式传值,不需要考虑函数调用过程中形参的顺序。( )

2分
登录后查看选项
27

函数是将实现相同功能的代码封装在一起,实现代码复用。( )

2分
登录后查看选项
28

创建自定义函数时,不需要声明函数形参的类型,形参的类型由调用自定义函数时传递的实参类型确定。( )

2分
登录后查看选项
29

递推是按照一定的规律计算序列中的每一项,通常是通过计算前面的一些项来计算后一项的值。( )

2分
登录后查看选项
30

某同学用天平称量的过程如下:先放置100克砝码,砝码偏重;再将砝码改为50克,砝码偏轻;又将砝码改为75克……通过这种策略,该同学很快完成物品称重工作,这体现了分治思想。( )

2分
登录后查看选项
31

使用"pip install-upgrade pandas"命令能够升级pandas库。( )

2分
登录后查看选项
32

Python中调用close()函数可实现对文件内容的读取。( )

2分
登录后查看选项
33

下面的程序会输出两个值。( )
def r(a,b):
  s=a+b
  b+=1
  return s
print(r(3,8))

2分
登录后查看选项
34

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?

经分析,从第三个月起,每个月的兔子数是上个月与上上个月兔子之和。

请判读以下程序是否正确。( )

#自定义函数

def fib(n):      #斐波那契数列

   if n<=2:

       return 1

   else:

       return  fib(n-1)+fib(n-2)  #前两个数字之和

#主程序,显示每个月兔子数(斐波那契数列)

for i in range(1,13):

   print("第",i,"个月兔子对数为:",fib(i))

2分
登录后查看选项
35

下列两个代码块的功能一样。( )

A.if(year%4)==0:                  

      if(year%100)==0:

           print(year)

B.if(year%4)==0 and (year%100)==0:                  

    print(year)

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

换位密码法是将明文中的字符位置通过一定的规则重新排列从而得到密文的一种加密方法。某换位密码法加密方法如下:先把明文按照固定长度(4位一组)进行分组,然后对每一组的字符进行换位操作,从而得到密文。例如, 字符串"ceit",使用密钥1432进行加密时,首先将字符串以 4 个字符为一组进行分组,然后对每组的字符进行换位,第1个和第3个字符位置不变,把第2个字符和第4个字符交换位置,从而得到密文"ctie"。小张编写的程序如下,请完善划线处的代码:

def jiami(yw,key):

    result = ''          

    for i in range(0,                ,len(key)):

        s1=yw[i:i+ len(key) ]

        for j in range(               ):

            result = result +               

    return result

yw= input('请输入待加密的明文:')

key= input('请输入密钥:')

mw=               

print(mw)

运行结果如下图所示:

undefined

10分
登录后作答
37

一张长方形的纸,长m米,宽n米(长宽均为整数),现在要把它刚好裁成一些正方形(边长是整数),有几种裁法,如果要使裁得的正方形面积最大,可以裁多少块。小明学习了递归后,编写程序如下,首先输入长方形的长和宽,计算出结果。请完善划线处的代码:

def tj(a,b):

    c = 0

    minn =                

    if a > b:

        minn = b

    for i in range(1,minn+1):

        if a % i == 0 and b % i == 0:

            c =                

    return c

def gcd(a,b):

    if b == 0:

        return a 

    return                

chang = int(input('输入长方形的长 (单位cm)'))

kuan = int(input('输入长方形的宽 (单位cm)'))

bianchang = gcd(chang,kuan)

total =                

num = tj(chang,kuan)

print('------------结果如下-------------')

print('有{}种裁法'.format(num))

print('裁得的正方形面积最大边长是{}cm,可以裁{}块'.format(bianchang,total))


运行后的结果如下图所示:undefined

10分
登录后作答
38

商超采用会员制,客户的消费信息如会员号、姓名和积分如下表所示,小方的爸爸想编写一个客户信息管理系统,其中有一个功能是:输入会员号,查询该会员的积分。undefined

小方知道后,就跃跃欲试,他首先从数据库读取客户信息到列表data中,其中data[i][0]存储第i条记录的会员号,data[i][1]存储第i条记录的姓名,data[i][2]存储第i条记录的积分;他首先将数组data中数据按会员号升序排序,然后用二分查找算法查找会员号对应的积分信息。代码如下,完善划线处的代码:

def bubble_sort(d):

    for i in range(len(d)-2):

        for j in range(len(d)-1,                ,-1):

            if d[j][0] < d[j-1][0]:

                d[j],d[j-1] = d[j-1],d[j]

def bin_ search(d, key):

    i,j = 0, len(d)-1

    while i <= j:

        m=(i +j)//2

        if                :

            return m

        if key > d[m][0]:

            i = m+1

        else:

            j = m-1

    return -1

#从数据库读取会员信息存列表data中,代码略

data=[[8011,'张飞',12345],[8012,'李强',34512],[7812,'李好',45321]]

bubble_sort(data)

key = int(input('输入会员号:'))

m =                 

if m!=-1:

    print (data[m][1],'先生/女士:您的积分是:',data[m][2])

else:

    print('该会员号不正确')

10分
登录后作答