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

261 | 202212Python四级真题-练习
选择题 共25道
01

n个按名称排序的商品,使用对分查找法搜索任何一商品,最多查找次数为5次,则n的值可能为?( )

2分
登录后查看选项
02

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

2分
登录后查看选项
03

下列问题使用分治算法思想的是?( )

2分
登录后查看选项
04

李宇同学利用Python语言编写了一段“根据出生年月判断生肖属相”的程序,调试运行时,程序没有报错且顺利运行,但未能正确输出对应属相,造成这个结果的原因可能是?( )

2分
登录后查看选项
05

一般来说,递归需要有边界条件、递归前进段和递归返回段。当不满足边界条件时,( );当满足边界条件时,( )。

2分
登录后查看选项
06

以下哪一项不是递归算法的特征?( )

2分
登录后查看选项
07

关于斐波那契数列,下列空白处的代码填写正确的是?( )

def func(num):

   if num==1:

       return 1

   elif num==2:

       return 1

   else:

                     

lst=[]

b=input('请输入选择的数字:')

b1=int(b)

for a in range(1,b1+1):

   print(func(a))

   lst.append(func(a))

   a+=1

print(lst)

2分
登录后查看选项
08

在有序列表[2,3,10,15,20,25,28,29,30,35,40]中,使用二分法查找20,需要查找多少次能找到?( )

2分
登录后查看选项
09

下列程序输出正确的是?( )

def ac(n):

   if n < 0:

       return

   else:

       ac(n-1)

       print(n)

ac(4)

2分
登录后查看选项
10

阅读下列程序,运行结果正确的是?( )

def power(x,y):

   if y==0:

       return 1

   else:

       return x * power(x,y-1)

print(power(4,5))

2分
登录后查看选项
11

下载但不安装一个第三方库的命令格式是?( )

2分
登录后查看选项
12

不需要使用Pythonpip工具安装的是?( )

2分
登录后查看选项
13

使用lambda定义匿名函数如下:f=lambda x:x+1,则f(f(1))代码运行结果是?( )

2分
登录后查看选项
14

关于函数,以下选项中描述错误的是?( )

2分
登录后查看选项
15

某自定义函数有两个参数,并且这两个参数都指定了默认值。我们在调用这个函数时,最少需要提供几个实参?( )

2分
登录后查看选项
16

以下关于Python中使用函数的描述,错误的是?( )

2分
登录后查看选项
17

Python中,函数通过可变参数*args传入的参数,在函数内以哪种数据类型存储?( )

2分
登录后查看选项
18

下列关于函数调用的说法正确的是?( )

2分
登录后查看选项
19

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

2分
登录后查看选项
20

下列选项中不能作为自定义函数名的是?( )

2分
登录后查看选项
21

函数定义如下:

def func(a,b=0,c=0):

   pass

下列选项调用错误的是?( )

2分
登录后查看选项
22

下列选项中,函数定义错误的是?( )

2分
登录后查看选项
23

运行下列代码,输出结果为?( )

def func(a,b,*args):

   print(a)

   print(b)

   print(args)

func(1,2,3,4,5,6)

2分
登录后查看选项
24

下列关于函数的说法正确的是?( )

2分
登录后查看选项
25

下列选项中,不是函数的是?( )

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

计算下面这段程序的时间复杂度为平方阶:On^2)。( )

sum1=0

for i in range(101):

   sum1+=i

2分
登录后查看选项
27

汉诺塔游戏是递归调用的经典案例。( )

2分
登录后查看选项
28

递推关系是递归的重要组成。( )

2分
登录后查看选项
29

以下命令:

pip get pandas

用于下载第三方库pandas,但不马上安装。( )

2分
登录后查看选项
30

使用Python语言编程,可以定义一个名叫pass的函数。( )

2分
登录后查看选项
31

函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为True

2分
登录后查看选项
32

Python中调用函数的时候,必须将每个实参都关联到函数定义中的每一个形参,最简单的关联方式就是基于实参的顺序。但也可以通过关键字实参的“关键字-值”方式关联形参,这时就不必考虑函数调用过程中实参的顺序。( )

2分
登录后查看选项
33

Python中,全局变量名和局部变量名一定不能重名。( )

2分
登录后查看选项
34

调用函数时,Python将形式参数传递给实际参数。( )

2分
登录后查看选项
35

分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。( )

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

从键盘接收一组不重复整数,并将这组整数按从小到大的顺序排列。

以下程序采取快速排序法对这组整数进行排序。

快速排序法的原理是:

(1)取这组数据中间那个数为锚定值mid;

(2)从这组数据开头往右找,遇到比mid大的数则停下,位置记为i;

(3)从这组数据末尾往左找,遇到比mid小的数则停下,位置记为j;

(4)如果此时i仍在j左边,即i<=j,则交换这两个数;

(5)重复(2)~(4)直到i、j重合;

(6)对i左边的数进行快速排序;

(7)对右边的数进行快速排序。

输入示例:

请输入需要排序的一组整数,数与数之间用空格隔开:6 10 11 8 4 1 9 7

输出示例:

排序结果:1 4 6 7 8 9 10 11 

程序模板:

def QuickSort(left,right):

    if            ①           :

        return

    mid=Numbers[left+(right-left)//2]

    i=left

    j=right

    while i<j:

        while Numbers[i]<mid:

            i+=1

        while Numbers[j]>mid:

            j-=1

        if i<=j:

                    ②           

        QuickSort(left,j-1)

        QuickSort(i+1,right) 

 

Numbers=list(map(int,input("请输入需要排序的一组整数,数与数之间用空格隔开:").           ③           ))

QuickSort(0,           ④           )

print("排序结果:",end="")

for i in Numbers:

    print(i,end=" ")

10分
登录后作答
37

鸡兔同笼是中国古代的数学名题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:

今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

意思是:有若干只鸡兔同在一个笼子里(笼中最少有一只鸡和一只兔),从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?

今天我们用编程的方法来求解一下这道数学命题吧。

def ji_tu(head,leg):

    j=0

    t=0

    while j<head:

        j += 1

        t =                       

        if (leg==                      ):

            print('有鸡{}只,有兔子{}只。'.format(                      ))

    return (j,t)

while True:

    try:

        sum_head=int(input('请输入总头数:'))

        sum_leg=int(input('请输入总脚数:'))

        if                       :

            print('输入鸡和兔子的总头数或总脚数错误,请重新输入!')

        else:

            ji_tu(                      )

    except:

        print('能不能正常输入数据?')

 


10分
登录后作答
38

有一个游戏:有两个人,第一个人先从12中挑一个数字,第二个人可以在对方的基础上选择加1或者加2,然后又轮到第一个人,他也可以选择加1或者加2

之后再把选择权交给对方,就这样双方交替地选择加1或者加2,谁先加到20,谁就赢了。在不考虑谁输谁赢的情况下,从一开始(以12为起点)加到20

有多少种不同的递加过程?比如1471012151820算一种;25811141720又是一种。那么一共会有多少种这样的过程呢?

我们可以用递归算法来解决这个问题,请补全代码。

def guo_cheng(n):

    if                        :

        return 1

    return                       

 

# 输出所有过程的个数

print (guo_cheng(                      ))

 

10分
登录后作答