2022年3月青少年软件编程Python等级考试(四级)试卷
剩余时间 --:--:--
单选题 共 25 题
1.

函数调用时通过“键-值”形式加以指定实际参数,即使用关键字参数,可以让函数更加清晰、容易使用,关于关键字参数的限制,以下表述中哪一个是错误的?

2.

关于以下程序,运行程序输出的结果是

def demo(a,b): 
    print(a+b) 
mydict={'a':1,'b':2} 
demo(**mydict) 
demo(*mydict)
3.

Python可以将形式参数定义为可变参数,即传入函数中的实际参数可以是任意多个,主要有“*parameter”以及“**parameter”两种形式。以下关于可变参数的定义形式表述错误的是?

4.

Python机器学习方向的第三方库是?

5.

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

6.

有如下 Python 程序,运行该程序后,输出结果为?

def fun(s):
    st=s[1]
    for i in range(1,len(s)):
        if len(st)==0 or s[i]!=st[len(st)-1]:
            st=st+s[i]
        else:
            st=st[0:len(st)-1]
    print(st)
fun("xxyyzzxyz")
7.

设有以下函数,运行程序输出的结果是

def fun(m,n): 
    m-=n 
    return m 
a=fun(4,1) 
print(a)
8.

可以通过下列哪一个关键字,通过局部变量修改全局变量的值?

9.

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

def miao(x,y): 
    z=x+y*2
    y=x
    return z 
x=2 
y=3
z=miao(x,y)+y
10.

关于Python的自定义函数的描述,下列哪个选项是错误的? 

11.

以下选项中,关于python函数参数的说法错误的是?

12.

以下哪个不是Python中的内建函数? 

13.

关于算法描述正确的是?

14.

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

15.

下列关于函数的说法,错误的是?

16.

一般用于安装Python第三方库的工具是?

17.

分治法所能解决的问题一般具有以下几项特征,下列哪一项描述不正确?

18.

对于序列98,88,76,65,48,24,12,12,8,1,采用“对分查找”法查找8,需要查找多少次?

19.

以下常见算法中,体现分治思想的是

20.

以下函数要实现5的阶乘,则划线处应补充选项为?

def fun(i):
    if i<=1:
        return 1
    else:
        return                
print(fun(5))
21.

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

def fun(a):
    if a<=1:
        return 1
    else:
        return fun(a-1)*2
print(fun(5))
22.

以下关于递归与递推方法的比较,正确的观点是?

23.

下列关于递归的描述不正确的是

24.

以下函数要计算1到100自然数的和,则划线处应补充选项为?

def su(n):
    s =0
    while n > 0:       
    return s
print(su(100))
25.

观察下列代码,说法错误的项是?

def fi(n):
    if n==1 or n==2:
        s=1
    else:
        s=fi(n-1)+fi(n-2)
    return s
a=int(input("请输入a的值:"))
print(fi(a))
判断题 共 10 题
1.

执行以下代码:

def func(list_1):
    list_1=[5,8]
list_1=[20,12,53]
func(list_1)
t=tuple(list_1)
print(t)

程序输出的结果为:(5,8)。

2.

在一个程序实现过程中,若某一部分的代码功能反复出现了多次,我们可以把这段反复出现的代码定义成一个函数,然后在需要的时候调用,这体现了函数代码的复用性。

3.

primenumber(number)函数是判断一个数是否是素数的函数,将函数的循环条件“for i in range(2,number)”更改为“for i in range(2,number//2)”能够降低primenumber(number)函数的时间复杂度。

def primenumber(number):
    if number < 2:
        print(number,"不是素数!")
    else: 
        for i in range(2,number):
            if number % i == 0:
                print(number,"不是素数!")
                break
        else:
            print(number,"是素数!")
4.

匿名函数L(x1,y1,x2,y2)的返回值是(x1-x2)**2 + (y1-y2)**2的计算结果。

   L = lambda x1,y1,x2,y2:(x1-x2)**2 + (y1-y2)**2

5.

小明听说,使用pygame模块可以编写很多有趣的小游戏,于是他想在自己的电脑上安装这个模块。

他使用了如下命令进行安装,请问,他下面这条命令正确吗?

pip  install  -i  https://pypi.doubanio.com/simple/  pygame

6.

1、有abc三个口袋,a袋中有1粒糖,b袋中有2粒糖,c袋中有3粒糖

2、小红与小明两人轮流在任意一袋中取糖出来。每次可以在任意一袋中,取任意颗(比如,可在c袋中取3、2、1任意颗)

3、到最后,谁最后一次取,并将所有糖都取完了,谁就获胜,获胜者将得到所有的糖。

小明让小红先取,自己后取。

小红说:不!先取的人肯定会输!

请判断,小红所说,是正确还是错误?

7.

为打印出5、4、3、2、1这个数字序列,小明编写了一个递归函数,如下图所示。

请问,他这个程序是正确的吗?

8.

为实现下图左边的打印效果,小明编写了如下图右边的代码。

请问,他这代码能正确打印出左边效果来吗?

9.

下图左右两段代码运行之后,打印出的结果不相同!请判断对吗?

10.

如下图代码,运行之后,最终打印出的结果是4,请判断对错。

问答题 共 3 题
1.

编写程序计算n(n<=10)位数中,包含奇数个5的个数。比如1位数中包含奇数个5的个数是1个。利用递推方法计算n位数包含奇数个5的个数。完善划线处的代码。

c = [[0 for i in range(2)] for i in range(11)]  #存放奇数个5和偶数个5的二维列表
c[1][0] = 9                           #一位数中包含偶数个5的个数
c[1][1] = 1                           #一位数中包含奇数个5的个数
k = 9
n = 5
for i in range(2,  ①  ):                   
    if i == n:
        k =   ②  
    c[i][0] = c[i-1][1] + k * c[i-1][0]
    c[i][1] =   ③  
print(c[n][1])
2.

素数是只能被1和本身整除的正整数,编写自定义函数,实现判断正整数是否为素数。完善程序代码。

"""

判断正整数n是否为素数,若是返回True;否则返回False

函数名  def prime(n)

参数    n:表示正整数

返回值 :n是素数,返回True;否则返回False

"""

def prime(n):
    if n < 2:
        return False
    else:
        for i in range(  ①   ,n):
            if   ②   :
                return False
    return   ③  
n = 7
if   ④  :
    print("{}是素数".format(n))
else:
    print("{}不是素数".format(n))
3.

7个评委给每个选手打分,评委分数中去掉最高分与最低分,计算所得平均分是每个选手的最后得分,保留2位小数。

根据上述计算规则,编写自定义函数完成程序功能,完善代码。

"""

根据评委分数,计算去掉最高分与最低分后的平均分,保留2位小数

函数名  def getScore(fs):

参数    fs:表示评委的分数,为列表

返回值 :返回选手的得分,保留2位小数。

"""

def getScore(fs):
    maxfs = 0
    minfx = 999999
    n =   ①    
    for f in fs:
        if f > maxfs:
             ②    
        elif f < minfx:
            minfx = f   
    yxf = sum(fs)-maxfs-minfx
    avgfs =   ③    
    return avgfs
fs = [9.56,9.68,9.78,9.67,9.81,9.21,9.75]
defen =  ④    
print(defen)
C++ 编辑器
输入
输出