CIE 2026年03月_Python4级试卷

从PDF导入:CIE 2026年03月_Python4级试卷

Python 60分钟 总分 100.0 38 题
试卷题目预览
第1题 中级 2.0分 单选
小明有一堆糖果,他每天吃掉一半加一颗。如果小明连续吃了5天,糖果正好吃完,请问小明最初有多少颗糖果?求解该问题使用的算法思想是?( )
A. 查找
B. 递推
C. 排序
D. 枚举
第2题 中级 2.0分 单选
下列有关递归与递推的描述中,正确的是?( )
A. 递归没有体现“大事化小”的思想
B. 一个问题不能既可以用递归解决,又能用递推来解决
C. 递归有明确结束递归的边界条件
D. 通常递归比递推高效,因为它使用了函数调用
第3题 中级 2.0分 单选
有如下Python程序,执行该程序后,输出的结果是?( )

def f(n):
if n == 1:
return n
else:
return n + f(n//2)
print(f(10))

A. 18
B. 55
C. 100
D. 1
第4题 中级 2.0分 单选
有如下递归函数,执行print(f(3))语句后,函数f被调用的次数是?( )

def f(n):
if n == 1 or n == 0:
return n
else:
return f(n-1) + f(n-2)
print(f(3))
f(3) 1次
f(2)+f(1) 2次
f(1)+f(0) 2次
共5次

A. 2
B. 3
C. 4
D. 5
第5题 中级 2.0分 单选
运行如下代码,请输出运算结果?( )

def f(lst):
if len(lst) == 0:
return 0
return lst[0] + f(lst[1:])
a= [1,2,3,4]
print(f(a))

A. 3
B. 6
C. 9
D. 10
第6题 中级 2.0分 单选
有如下Python程序,执行该程序后,输出的结果是?( )

def nx(s):
if len(s) == 1:
return s
return nx(s[1:])+s[0]
print(nx('abcda'))

A. abcda
B. bcdaa
C. cdaba
D. adcba
第7题 中级 2.0分 单选
以下关于关键字global和nonlocal的表述中,错误的选项是?( )
A. global和nonlocal相同点是在函数体内改变非局部变量的值
B. global声明变量时不能同时对该变量赋值
C. global声明的变量将变成全局变量
D. nonlocal能通过局部变量改变全局变量的值。
第8题 中级 2.0分 单选
在Python社团活动中,小明请小伙伴写了以下交换两个变量值的函数,运行代码的输出是?( )

def swap(a, b):
a, b = b, a
x, y = 1, 2
swap(x, y)
print(x, y)

A. 1 2
B. 2 1
C. 报错
D. 0 0
第9题 中级 2.0分 单选
社团活动中,小明给小伙伴们出了一道编程题,请阅读Python程序,下列哪个选项描述是正确的?( )

def demo(n):
s=1
for i in range(1,n):
s*=i
return s

A. demo(n)函数的功能是求n-1的阶乘
B. s是全局变量
C. n是实参
D. range()函数不是Python内置函数
第10题 中级 2.0分 单选
在学习完函数如何传递参数后,老师给出以下Python程序,让大家试运行一下,输出结果是?( )

def demo(x):
return x*2
print(demo(demo(2)))

A. 1
B. 2
C. 4
D. 8
第11题 中级 2.0分 单选
有如下Python程序,执行该程序后输出的结果是?( )

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

A. 10
B. 5
C. 10
D. 5
第12题 中级 2.0分 单选
小明根据课上老师讲的内容编写了以下Python程序,老师发现了错误却依旧可以运行,当前输出结果是?( )

def f(a:int,b:str)->str:
c=a+b
print(c)
return f
f('3','45')

A. 48
B. 75
C. 345
D. 报错
第13题 中级 2.0分 单选
小明需要升级安装最新版本的 numpy 库用于数据分析。正确的安装命令是?( )
A. pip install numpy
B. pip install --upgrade numpy
C. pip update numpy
D. pip install numpy==latest
第14题 中级 2.0分 单选
小明想在Python中导入matplotlib的pyplot模块并设置别名,绘制图表。正确的导入方式是?( )
A. import matplotlib.pyplot as plt
B. from matplotlib import pyplot
C. import pyplot from matplotlib
D. include matplotlib.pyplot
第15题 中级 2.0分 单选
在Python程序中,以下哪个选项的函数调用能够正确输出结果为:"4年级的李明同学"?( )

函数定义如下:

def student_info(grade, name):
print(f"{grade}年级的{name}同学")
A:位置实参调用正确。
B:实参个数与形参个数不一致,错误。
C:实参顺序与形参顺序不一致,错误。
D:位置实参与关键字实参混用,位置实参必须在关键字实参之前。

A. student_info(4, "李明")
B. student_info("李明")
C. student_info("李明", 3)
D. student_info(grade=4, "李明")
第16题 中级 2.0分 单选
在Python语言中,以下哪个函数调用可以正确输出"计算结果=9"?( )

函数定义如下:

def calc(x, y, z):
ans = (x + y) * z
print(f"计算结果={ans}")

A. calc(1, 3, 2)
B. calc(1, 2, z=3)
C. calc(2, x=1, z=3)
D. calc(z=1, y=2, x=3)
第17题 中级 2.0分 单选
有如下Python程序段,执行该程序段后的结果是?( )

def mul(x, y=1):
return x ** y
print(mul(2), mul(1, 2))

A. 2 2
B. 1 2
C. 2 1
D. 1 1
第18题 中级 2.0分 单选
在Python语言中,当不确定需要传入的值是多少时,可以用*args来表示,执行如下程序段后的结果是?( )

def fun(*args):
t = 0
for x in args:
t += x
return t
print(fun(1) + fun(2, 3))

A. 1
B. 2
C. 6
D. 程序报错
第19题 中级 2.0分 单选
下列关于函数return语句的说法,正确的是?( )
A. return语句中返回值的数据类型可以是字典,也可以是列表
B. 一个函数中只能有一个return语句
C. return语句中不能有表达式
D. return只能返回一个值
第20题 中级 2.0分 单选
下列Python代码的输出结果是?( )

>>>s=lambda a,b:a*b
>>>s(4,4)

A. 4
B. 4,4
C. 16
D. 8
第21题 中级 2.0分 单选
在Python语言中,匿名函数不需要用return来返回值,执行如下程序段后的结果是?( )

f = lambda x, y : x if x > y else y
result = f(10, 20)
print(result)
f(10, 20) 调用该函数,比较 10 和 20,由于 10 > 20 为 False,所以返回 y(即 20)。
最终输出 20。

A. 10
B. 20
C. True
D. False
第22题 中级 2.0分 单选
小明正在用枚举算法解决一个问题:找出所有满足各位数字之积等于12的三位数。为了提高程序运行效率,他需要选择一个合适的数值范围进行枚举。在以下选项中,哪种数值范围能让算法的执行效率最高?( )
A. 0~999
B. 100~900
C. 126~621
D. 126~431
第23题 中级 2.0分 单选
下面为银行存款计算程序,假设存款利率每年都是0.03,小明有1000元,求存满5年后的总金额,下面Python代码空白处应该填入哪个选项?( )

def interest(total, years, rate=0.03):
for i in range(years):
total *= ( )
return total
print(interest(1000, 5))

A. total+rate
B. rate
C. 1+rate
D. years+ rate
第24题 中级 2.0分 单选
分治算法的基本思想不包括下列哪个选项?( )
A. 将大问题分解为小问题
B. 递归解决小问题
C. 合并小问题的解
D. 优先解决最困难的子问题
第25题 中级 2.0分 单选
下列生活问题中,不适合用分治策略解决的是?( )
A. 猜1到100之间的某个整数
B. 有多个节点的输电线路的故障检测
C. 从一堆硬币里面找到质量轻的一枚假硬币
D. 百鸡百钱问题
第26题 中级 2.0分 判断
递归思想是一种直接或间接地调用自身的算法设计方法,通常用于解决那些问题本身可以被分解为更小的相同类型问题的情况。( )
T. 正确
F. 错误
第27题 中级 2.0分 判断
递推基本思想是通过已知条件,利用递推关系(或递推公式)来求解问题。递推关系通常是一个或多个前项与当前项之间的关系式。( )
T. 正确
F. 错误
第28题 中级 2.0分 判断
Python语言编程中,函数如果没有return语句,默认返回None。( )
T. 正确
F. 错误
第29题 中级 2.0分 判断
Python语言编程中,如果参数输入的类型不匹配,运行时程序会报错。( )
T. 正确
F. 错误
第30题 中级 2.0分 判断
使用pip list命令可以查看当前Python环境中所有已安装的第三方库及版本信息。( )
T. 正确
F. 错误
第31题 中级 2.0分 判断
在Python语言中,函数的核心意义在于将代码模块化、提高代码执行效率,并通过抽象化逻辑降低复杂性。( )
T. 正确
F. 错误
第32题 中级 2.0分 判断
在Python语言中,函数的关键字实参是通过“关键字=值”方式,将实参与形参关联映射,实参顺序要严格按照形参顺序传递,否则运行结果会发生改变。( )
T. 正确
F. 错误
第33题 中级 2.0分 判断
小明正在学习求正方形的面积,他用Python语言创建了如下函数,他认为函数没有return返回值运行会错误。( )

fun = lambda x : x ** 2

T. 正确
F. 错误
第34题 中级 2.0分 判断
小明用Python语言写了一个程序,计算从1加到n的总和,他分别用两种方法实现了这个功能:

# 方法一
total = 0
for i in range(1, n+1):
total += i
# 方法二
total = n * (n+1) // 2
小明说,方法2比方法1快得多,因为方法1的时间复杂度是O(n+1),而方法2的时间复杂度是O(1)。( )
时间复杂度是重复语句执行最多次数,但保留最高阶项,所以方法1的时间复杂度是O(n)。

T. 正确
F. 错误
第35题 中级 2.0分 判断
分治算法的必要条件之一,是分解后的子问题可以独立求解。( )
T. 正确
F. 错误
第36题 中级 10.0分 编程
密码安全性

密码离不开大家的生活,各类APP中密码设置简单了,就容易造成损失。为此小明编写程序检测密码是否安全。安全密码的两个条件:①密码长度至少8位,②密码中数字、大写字母、小写字母和特殊符号(!@#$%^&*())这四类符号中必须有3项以上。比如,密码是 "ADa%9"(不包括双引号),运行程序后输出"密码不符合安全要求"。利用Python编写程序如下,完善划线处的代码。

第37题 中级 10.0分 编程
智能家居系统

在智能家居系统中,我们可以通过中央控制系统来管理各个房间的智能灯。为了简化问题,假设每个房间有一个智能灯,其状态用1表示开,0表示关。我们的任务是计算家里所有开着的灯的数量。我们将采用分治算法的思想来解决这个问题。
请补全以下代码,使用分治算法实现统计列表中开着的灯(值为1)数量的功能。

第38题 中级 10.0分 编程
种植花卉

园丁在花园里种植花卉,第1行种5株花。从第2行开始,如果行数能被 3 整除,该行种植的花卉数量是前一行的2倍;如果行数除以3余 1,该行种植的花卉数量比前一行多3株;如果行数除以3余2,该行种植的花卉数量比前一行少1株。下面的递归函数用于计算第n行种植了多少株花卉,请完善划线处的代码。

💬