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

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

def s(n):
    if n==3:
        return 4
    else:
        return n+s(n-1)
print(s(5))
2.

下列程序段的运行结果是16,则在①处填写的代码是?( )

def s(n):
    s=1
    for a in range(1,5):
              ①       
    return s
print(s(4))
3.

下列程序功能是通过递归来实现将一个十进制数转换为八进制数,则在______处填写的代码是?( )

def s(n):
    if n < 8:
        return str(n)
    else:
        return _____________
m = s(int(input("输入十进制数字:")))
print("转换后八进制数是:",m)
4.

关于递归算法的特点,以下选项中描述错误的是?(

5.

有如下Python程序,执行该程序的结果是?( )

def nxs(n):
    s = 0
    while n >0:
        s = s * 10 + n % 10
        n //= 10
    return s
print(nxs(123))
6.

有如下Python程序,执行该程序后变量c的值是?( ) 

def prime(n):
    for i in range(2,n):
        if n % i == 0:
            return 0
    return 1
c = 0
for i in range(2,10):
    if prime(i):
        c += 1
7.

有如下Python程序,执行该程序后,输出的结果是?( )

def zdz(s):
    m = s[0]
    for i in s[1:]:
        if i > m:
            m = i
    return m
print(zdz('abc789XYZ'))
8.

有如下Python程序,执行该程序后输出的结果是?( )

n = 10
def fun():
    global n
    n = n ** 2
    print(n)
fun()
print(n)
9.

Python中,可以通过什么语句导入现有的标准库或者其他人提供的第三方库来编程?( )

10.

Python程序中某函数使用了3个变量,其中2个变量都指定了默认值,调用该函数时,参数的个数最少为几个?( )

11.

递归算法的基本思想是把规模较大的问题变成规模较小的问题,下列选项中哪一项必须要有?(

12.

1是一个水平摆放的小正方体木块,图2,图3是由这样的小正方体木块叠放而成的,按照这样的规律放下去,第七个叠放的图形有多少个正方形木块?这个问题我们可以用以下什么算法解决?( )

13.

以下算法中,不可以按照分治的策略问题由大化小的是?(

14.

以下函数的功能是求长方形面积,函数调用的正确方式是哪一项?(

def fun(a, b):
    return a * b
15.

以下函数求圆的面积,运行如下代码结果正确的是哪一项?(

def fun(r, pi=3.14):
    return r * r * pi
print(fun(10, 3))
16.

以下函数用“分治算法”求列表元素之和,请补全代码?( )

def fun(arr):  
    if len(arr) == 1:
        return arr[0]
    mid = len(arr) // 2
    left = fun(arr[:mid])
    right = ____________
    return left + right
arr = [1,2,3,4,5,6,7,8,9,10]
print(fun(arr))
17.

下列关于创建词云图的是哪个模块?(

18.

下列正确导入海龟库的方式是?(

19.

以下哪一项不属于分治算法的特征?(

20.

小明班上有50人,数学成绩已经由高到低排列,使用二分查找查找出小明的成绩,至多进行几次查找?( )

21.

对于Python语句f=lambda x,y:x**y+x//yprint(f(7,2))的输出结果是?( )

22.

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

def  fn(x, y):
        if x >=y:
                return x-y
        else:
                return y
print(fn(4, 7),fn(8, 5))
23.

下列有关函数的说法,不正确的是?(

24.

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

def f(x=2,y=0):
        return x-y
y=f(y=f(),x=5)
print(y)
25.

n10时,运行下列Python程序后的结果是?( )

def  fn(num):
    if num % 2 == 0:
        return False
    else:
        return True
n=int(input("请输入一个正整数:"))
print(fn(n))
判断题 共 10 题
1.

递归算法需要设置递归终止条件,不然会进入无限递归的情况。(

2.

递归算法的特点是调用自身,所以占用的存储空间较小。(

3.

添加第三方库可以不用命令或集成开发工具,直接通过网络工具下载任意该库的.exe安装文件,运行安装即可。( )

4.

Pythonreturn语句将函数值返回到调用函数的代码处。( )

5.

函数的返回值可以是整数型、字符串型、列表等,不能是字典类型。(

6.

运行以下代码:

def fun(x, y, z):
    return x + y - z
print(fun(1, y=10, 3)

运行结果为:8。( )

7.

一个袋子里有128枚硬币,其中一枚是假币,并且假币和真币外观一模一样,仅凭肉眼无法区分,仅知道假币比真币轻一些,我们现在借助天平来查找假币,最多称9次可以找到假币。( )

8.

算法的空间复杂度越高,说明算法对应的程序代码量越多。(

9.

Python中自定义函数时,形参与返回值不是必需的( )

10.

Python中,函数体return语句之后的代码行都不会被执行,return语句结束整个函数。( )

问答题 共 3 题
1.

阿凡提与国王比赛下棋,国王说要是自己输了的话阿凡提想要什么他都可以拿得出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第一个格子里放1粒米,第二个格子里放2粒米,第三个格子里放4粒米,第四个格子里放8粒米,以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。需要多少粒米呢?根据题意,请完善划线处的代码。

def fun(n):
    x =     ①   
    for i in range(n):
          ②      
    return x
s =    ③   
for i in range(64):
    s += fun(    ④    )
print(s)
2.

查字典

 

假如字典为1000页,若用二分法来翻到具体指定的页码,则横线处能正确控制循环体运行的表达式是什么?请完善横线处的代码。

x=int(input("请输入要查找的页码(小于1000):"))
flagleft=1
flagright=1000
n=0
while    ①   :
        mid= (flagleft+flagright)//2
        n=n+1
        if  mid>x:
              ②   
        elif mid<x:
                 ③     
        else:
                break
print('需要查找的次数为:',n)
3.

蜗牛爬行 

一只蜗牛在如下图所示的数字方格上移动,已知它只能从标号小的方格移动到标号大的相邻方格。现在请你计算:蜗牛从方格M开始爬到方格N1<=M<N<=1000,有多少种移动路线?以下用Python编程实现,请你补全代码。

def woniu(m , n):
    k =     ①    
 
    a = [0] * (k+1)
 
    a[1]= 1
 
    a[2]=   ②  
 
    for i in range(3,    ③    ):
 
        a[i]=     ④      
 
    return a[k]
m = int(input())
n = int(input())
print(woniu(m,n))
C++ 编辑器
输入
输出