万卷网> 电子学会考级 >Python等级考试 > 2025年12月电子学会青少年软件编程(Python四级)等级考试试卷

2025年12月电子学会青少年软件编程(Python四级)等级考试试卷
客观题 四级 2025 2026-01-16 13:04:11 117

一、单选题

1.

有以下食堂点餐Python函数,现需要点"牛肉面"、不点甜品(dessert),下列四个点餐选项中最合适的是?( )

def order_meal(food, dessert=None):

    ...

A.

order_meal('牛肉面', dessert=0)

B.

order_meal(food='牛肉面', dessert=True)

C.

order_meal('牛肉面', dessert='')

D.

order_meal('牛肉面')

2.

小明写了一个关于计算梯形面积的函数,运行如下Python代码的结果是什么?( )

def s(a, b, h):
    area = (a + b) * h / 2
print(s(1, 2, 2))
A.

2

B.

2.0

C.

3.0

D.

None

3.

编写如下Python代码求两个数的最大公约数,划线处选择合适的代码?( )

def gcd(m, n):
    if m % n == 0:
        return n
    else:
        return _________
print(gcd(49, 28))
A.

gcd(n,m%n)

B.

gcd(m,m%n)

C.

gcd(m%n,n)

D.

gcd(m%n,m)

4.

递归算法的Python程序实现问题,下列说法正确的选项是?( )

A.

问题的规模越大,递归算法的效率越高

B.

需要使用循环语句

C.

有明确的结束递归的边界条件

D.

无需结束递归的边界条件

5.

小美想用递归算法实现字符串反转,以下代码能正确反转字符串,划线处应该填写哪个选项?( )

def r(s):
    if len(s) <= 1:
        return s
    return r(      ) + s[0]
s='abcde'
print(r(s))
A.

s[::-1]

B.

s[:]

C.

s[:1]

D.

s[1:]

6.

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

a = 5
def fun():
    global a
    a = a *2
    print(a)
fun()
print(a)
A.

10

10

B.

5

5

C.

10

5

D.

5

10

7.

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

A.

调用函数时传递的实参个数必须大于或等于形参个数

B.

函数参数可以是任意数据类型

C.

函数参数必须有默认值

D.

函数参数不能是字符串

8.

下列问题体现分治算法思想的是?( )

A.

打印1000以内的素数

B.

输出100以内能被5整除的整数

C.

求长方体的体积

D.

用快速排序算法对n个整数升序排序

9.

小明每天存钱,第一天存1元,之后每天存前一天的2倍。

他想用递归算法求出第几天可以存到32元。请问以下Python程序的递归调用次数是?( )

def save_days(amount, target=32):
    if amount >= target:
        return 0
    return 1 + save_days(amount * 3)
print(save_days(1))
A.

4

B.

5

C.

6

D.

7

10.

在Python语言编程中,以下哪个函数调用后,可以打印输出欢迎语“Welcome!”?( )

A.

def greet():

   print("Welcome!")

B.

def greet:

   return "Welcome!"

C.

def greet(): 

return "Welcome!"

D.

def greet("user"):

   print("user","Welcome!")

11.

小明每天存钱,第一天存1元,之后每天存前一天的2倍。 小明编写的Python程序,若递归函数缺少终止条件,会导致什么问题?( )

A.

计算结果不准确,但能正常结束

B.

程序陷入无限循环,无法停止

C.

程序运行报错

D.

计算结果正确,但效率降低

12.

在Python语言中,导入第三方库的语法正确的是哪一项?( )

A.

from math import as m

B.

import m as math

C.

import math as m

D.

from math as m import *

13.

老师用递归函数计算连续自然数1到5的和,调用sum_r(5) 时实际递归调用了几次函数?( )

def sum_r(n):
    if n == 1:
        return 1
    return n + sum_r(n-1)
A.

7

B.

6

C.

4

D.

5

14.

有如下Python自定义函数,能正确调用该函数的选项是?( )

def f(a,b,c)
    return a-b/c
A.

f(1,2)

B.

f(1,2,c=3)

C.

f(a=1,2,3)

D.

f(1,b=2,3)

15.

在Python语言中,运行如下代码,执行结果正确的是?( )

x = 10
def fun(x):
        print(x)
        x = 5
fun(x)
print(x)
A.

5

10

B.

5

5

C.

10

10

D.

10

5

16.

在下列Python代码中,将data变为全局变量,横线处应该填入的是?( )

data = 0
def add_data():
    ______ 
   data+= 2  # 修改全局变量
A.

global

B.

nonlocal

C.

var

D.

不需要填

17.

小张想用lambda函数计算两个数的和,正确的写法是?( )

A.

lambda a,b: a + b

B.

lambda a,b: return a + b

C.

lambda a,b -> a + b

D.

lambda (a,b): a + b

18.

下面Python代码的输出结果是?( )

def add(x=2, y=3):
    return x + y
print(add(y=5))
A.

5

B.

7

C.

8

D.

报错

19.

小明正在用Python编写一个“魔法数字盒”程序。这个数字盒有一个特殊功能:每次按下按钮时,数字会根据内部规则变化。以下是程序的一部分代码,如果小明连续按下按钮两次,屏幕上会显示什么数字?( )

def magic_box():
    num = 0  # 初始数字是0
    def press_button():
        nonlocal num
        num += 1  # 每次按下按钮,数字加1
        return num
    return press_button
button = magic_box()
print(button())  # 第一次按下按钮
print(button())  # 第二次按下按钮
A.

1

1

B.

1

2

C.

0

1

D.

0

0

20.

在Python语言中,可以使用pip命令安装第三方库,以下哪个命令是安装命令?( )

A.

pip download

B.

pip search

C.

pip show

D.

pip install

21.

在Python语言编程中,创建一个自定义函数,用于统计图书借阅次数,以下正确的无参函数定义是?( )

A.

def get_count(book_id=0):

B.

def get_count():

C.

def get_count(None):

D.

def get_count(*):

22.

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

def fib(n):
    a = b = 1
    for i in range(3,n+1):
        c = a + b
        a = b
        b = c
    return c
print(fib(5))
A.

3

B.

None

C.

5

D.

8

23.

家里有16平方米的房间要打扫,小明和小红两兄妹分别想解决打扫的问题。 小明想用递归的方法解决“打扫房间”的问题:每次打扫一半区域,直到剩余区域小于1平方米。 以下哪项是递归解决此问题的核心思想?( )

A.

将大房间拆分成多个小房间,同时打扫所有小房间

B.

每次打扫房间剩余的一半区域,直到剩余区域小于1平方米

C.

先打扫整个房间,再逐步缩小范围检查是否干净

D.

随机选择区域打扫,直到剩余区域小于1平方米

24.

Python3.5之后的版本新增了对函数参数和返回值的类型指定和检查,运行如下代码块,结果正确的是?( )

def fun(a:int, b:int)->int:
    if(a > b):
        return a + b
    else:
        return b
print(fun("3", "2"))
A.

2

B.

5

C.

32

D.

类型不对,程序报错!

25.

下列哪种情况的程序,时间复杂度最低?( )

A.

一个for循环,循环 100 次

B.

两个嵌套的for循环,每个循环 100 次

C.

执行一次print语句

D.

用while循环找列表里的某个元素

二、判断题

1.

在Pyhon语言中,nonlocal关键字用来在定义局部变量的同时,修改全局变量的值;global关键字用来在函数或局部作用域使用外层(非全局)变量。( )

A.正确 B.错误
2.

Python语言编程中,递归函数可以没有终止条件,只要问题规模能自动缩小到最小值。( )

A.正确 B.错误
3.

对于斐波那契数列,递推算法的时间复杂度远低于递归算法。( )

A.正确 B.错误
4.

小明想用Python画一幅彩色的图画,他听说可以使用一个叫turtle的库来完成。因此,必须打开命令窗口输入"pip install turtle"来安装这个第三方库。( )

A.正确 B.错误
5.

时间复杂度为O(n)的程序,比时间复杂度为O(n2)的程序执行效率要高。( )

A.正确 B.错误
6.

在Python中,自定义函数的函数体内必须有return语句。( )

A.正确 B.错误
7.

分治思想是将一个大问题分解成若干个小问题,分别解决这些小问题,然后再将小问题的解合并起来以解决原始的大问题。程序实现时必须使用递归程序。( )

A.正确 B.错误
8.

Python语言中,全局变量的作用域是整个程序,局部变量的作用域是函数内部。所以执行以下代码块打印输出是"wang"。( )

name = "zhang"
def fun(name):    
    print(name)
    name = "wang"
fun(name)
A.正确 B.错误
9.

Python语言编程中,函数convert = lambda x: str(x)可以把数字转为字符串。( )

A.正确 B.错误
10.

函数参数**kwargs可以接收学号-姓名键值对。( )

A.正确 B.错误
公众号
客服 反馈
顶部