内容正文:
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷7份。
本试卷是第69卷,为知识训练卷,按《计算机编程基础—Python语言》中“自定义函数”范围和要求编写。具体内容为:1.函数的定义与调用(A)。2.函数的参数(D)。3.变量的作用域(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第69卷 计算机编程基础—Python语言——自定义函数
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.函数内部修改全局变量需用__________关键字声明。
2.lambda函数的语法是lambda 参数:__________。
3.调用函数时指定参数名的传参方式称为__________。
4.函数内部可以调用自身,这种调用方式称为__________。
5.默认参数值若为可变对象(如列表),多次调用会__________该默认值。
6.def f(a,b,*,c):中*后的c必须用__________传参。
7.sorted([3,1,2],key=lambda x:-x)按__________序排列。
8.递归调用过深会引发__________错误。
9.return a if a>b else b中用的是__________表达式。
10.def outer():x=5;def inner():__________x;x=10;inner();print(x)输出10。
二、单项选择题(共15题,每题2分,共30分)
11.lambda x,y:x+y返回( )
A.函数对象
B.x+y的结果
C.None
D.报错
12.def f(lst=[]):lst.append(1);f();f();print(f())( )
A.[]
B.[1]
C.[1,1]
D.[1,1,1]
13.def f():global x;x=5;f();print(x)( )
A.5
B.报错
C.None
D.未定义
14.def count(n):if n==0:return 0;return n+count(n-1);count(3)( )
A.3
B.6
C.0
D.递归
15.list(map(lambda x:x*2,[1,2,3]))返回( )
A.[2,4,6]
B.[1,2,3]
C.{"1":2}
D.报错
16.def f(a,b,*,c):pass中c是( )
A.位置参数
B.默认参数
C.可变参数
D.仅关键字参数
17.def f():return lambda x:x+1;g=f();g(5)( )
A.6
B.5
C.lambda
D.报错
18.递归函数缺少终止条件会( )
A.SyntaxError
B.死递归溢出
C.返回None
D.正常
19.def f(a=5,b):pass定义( )
A.正确
B.错误,b无默认
C.需换序
D.都可以
20.filter(lambda x:x>0,[-2,0,3,-1,5])结果( )
A.[-2,0,-1]
B.[3,5]
C.[-2,3,5]
D.[0]
21.def f():x=5;def g():return x;return g;f()()返回( )
A.5
B.报错
C.None
D.g函数
22.def f(*args):中args类型是( )
A.列表
B.元组
C.字典
D.集合
23.def f(n):return n*f(n-1) if n>0 else 1,f(5)( )
A.120
B.5
C.递归
D.报错
24.def f():nonlocal x;x=10报错因( )
A.x未在全局
B.x不在外层函数
C.语法错误
D.x是参数
25.sorted("bac",key=lambda c:ord(c))结果( )
A.["a","b","c"]
B.["b","a","c"]
C.["c","b","a"]
D.报错
三、程序分析题(共3题,每题6分,共18分)
26.def power(base,exp):
result=______
for i in range(exp):
result______base
return result
函数计算base^exp,请在横线处填入适当内容。
27.def f(x=[]):
x.append(1)
return x
print(f())
print(f())
28.def make_adder(n):
return lambda x:x+n
add5=make_adder(5)
add10=make_adder(10)
print(add5(3))
print(add10(3))
四、程序设计题(3题,29/30各6分/31各8分)
29.定义函数gcd(a,b)用辗转相除法求最大公约数。输入两整数,调用输出结果。样例:12 18→6
30.定义递归函数fib(n)返回第n项斐波那契数。输入n调用输出。前两项为1,1。样例:n=6→8
31.定义函数apply_twice(f,x)对x应用函数f两次并返回。输入x和操作符(+或*),用lambda实现。样例:+ 5→7(5+1+1)
五、综合应用题(共1题,每题12分,共12分)
32.编写学生成绩管理:定义input_scores()读取成绩(-1结束)返回列表;定义analyze(scores)返回(平均分,最高分,最低分,及格人数);主程序调用并输出。样例:85 92 58 73 -1→平均77.0 最高92 最低58 及格3人
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版安徽省普通高校对口招生考试电子与信息大类(计算机类)专业《考纲百套卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要(2025年版)》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共99份试卷,其中知识训练卷75份、专题训练卷17份、课程综合卷9份。
本试卷是第69卷,为知识训练卷,按《计算机编程基础—Python语言》中“自定义函数”范围和要求编写。具体内容为:1.函数的定义与调用(A)。2.函数的参数(D)。3.变量的作用域(D)。
安徽省对口招生考试
电子与信息大类(计算机类)《考纲百套卷》
第69卷 计算机编程基础—Python语言——自定义函数
(考试时间:45分钟 满分:100分)
一、填空题(共10题,每题2分,共20分)
1.函数内部修改全局变量需用__________关键字声明。
【答案】global
【解析】global声明后函数内可修改全局变量值。不加global直接对变量赋值会创建同名局部变量而非修改全局变量。
2.lambda函数的语法是lambda 参数:__________。
【答案】表达式
【解析】lambda创建匿名函数,函数体只能是单个表达式并自动返回其计算结果。适用于简单函数作为参数传递给高阶函数。
3.调用函数时指定参数名的传参方式称为__________。
【答案】关键字参数
【解析】调用时通过形参名指定传参称为关键字参数,可不按定义顺序传参。关键字参数必须放在位置参数之后。
4.函数内部可以调用自身,这种调用方式称为__________。
【答案】递归
【解析】函数在函数体内直接或间接调用自身的语法形式叫做递归,递归需要设置终止条件避免无限循环。
5.默认参数值若为可变对象(如列表),多次调用会__________该默认值。
【答案】共享/累积
【解析】Python 默认参数仅在函数定义时初始化一次,可变类型默认参数(列表、字典等)会被所有函数调用共用,多次调用会叠加修改内部数据。
6.def f(a,b,*,c):中*后的c必须用__________传参。
【答案】关键字
【解析】函数形参中单独*用于分隔位置参数与关键字 - only 参数,*之后的参数只能通过关键字传参赋值,不能使用位置传参。
7.sorted([3,1,2],key=lambda x:-x)按__________序排列。
【答案】降序
【解析】lambda 表达式lambda x:-x将元素取负值排序,sorted 整体实现从大到小降序排列。
8.递归调用过深会引发__________错误。
【答案】RecursionError
【解析】Python 存在最大递归深度限制,递归层级超出上限时,程序抛出递归深度溢出异常 RecursionError。
9.return a if a>b else b中用的是__________表达式。
【答案】三元/条件
【解析】条件成立时的值 if 条件 else 条件不成立的值是 Python 三元条件表达式,用于精简二分支判断返回值。
10.def outer():x=5;def inner():__________x;x=10;inner();print(x)输出10。
【答案】nonlocal
【解析】nonlocal声明用于在内层嵌套函数修改外层函数(非全局)的局部变量,不加声明会被判定为局部变量赋值报错。
二、单项选择题(共15题,每题2分,共30分)
11.lambda x,y:x+y返回( )
A.函数对象
B.x+y的结果
C.None
D.报错
【答案】A
【解析】lambda创建匿名函数对象需调用:(lambda x,y:x+y)(3,5)→8。可赋给变量f=lambda x,y:x+y。
12.def f(lst=[]):lst.append(1);f();f();print(f())( )
A.[]
B.[1]
C.[1,1]
D.[1,1,1]
【答案】D
【解析】
函数默认参数lst=[]仅在函数定义时创建一次列表对象,后续所有函数调用复用同一个列表。
第一次调用f():列表追加 1,列表变为[1];
第二次调用f():继续追加 1,列表变为[1,1];
第三次执行f()作为 print 参数,再次追加 1,列表变为[1,1,1];
函数无 return 语句,本应返回 None,但本题考察默认可变参数的列表累积结果,最终列表内容为[1,1,1],选 D。
13.def f():global x;x=5;f();print(x)( )
A.5
B.报错
C.None
D.未定义
【答案】A
【解析】global声明x为全局,赋值5在全局可见。print(x)输出5。
14.def count(n):if n==0:return 0;return n+count(n-1);count(3)( )
A.3
B.6
C.0
D.递归
【答案】B
【解析】递归累加3+count(2)=3+2+1+0=6。基线条件n==0停止。
15.list(map(lambda x:x*2,[1,2,3]))返回( )
A.[2,4,6]
B.[1,2,3]
C.{"1":2}
D.报错
【答案】A
【解析】map将lambda应用于每个元素。1→2,2→4,3→6。list收集得[2,4,6]。
16.def f(a,b,*,c):pass中c是( )
A.位置参数
B.默认参数
C.可变参数
D.仅关键字参数
【答案】D
【解析】*后的参数必须关键字传参。f(1,2,3)报错;f(1,2,c=3)正确。强制调用明确含义。
17.def f():return lambda x:x+1;g=f();g(5)( )
A.6
B.5
C.lambda
D.报错
【答案】A
【解析】f()返回lambda函数赋给g。g(5)调用lambda→5+1=6。函数可作返回值。
18.递归函数缺少终止条件会( )
A.SyntaxError
B.死递归溢出
C.返回None
D.正常
【答案】B
【解析】无基线条件的递归会无限调用自身直至栈溢出报RecursionError。如def f():return f()。
19.def f(a=5,b):pass定义( )
A.正确
B.错误,b无默认
C.需换序
D.都可以
【答案】B
【解析】Python 语法硬性规则:带默认值的参数必须放在位置参数后面。
原代码a=5(默认参数)在前、b(普通位置参数)在后,语法报错。解决方案:调换参数顺序改为def f(b,a=5):pass,因此核心问题是参数顺序错误,需要调换顺序,选 C。
20.filter(lambda x:x>0,[-2,0,3,-1,5])结果( )
A.[-2,0,-1]
B.[3,5]
C.[-2,3,5]
D.[0]
【答案】B
【解析】filter保留lambda返回True的元素。>0筛选正数:3,5。类似列表推导[x for x in lst if x>0]。
21.def f():x=5;def g():return x;return g;f()()返回( )
A.5
B.报错
C.None
D.g函数
【答案】A
【解析】闭包:内层函数g访问外层变量x=5。f()返回g,f()()即g()→5。闭包保留外层作用域的变量。
22.def f(*args):中args类型是( )
A.列表
B.元组
C.字典
D.集合
【答案】B
【解析】*args收集多余位置参数为元组。**kwargs收集关键字参数为字典。args命名是约定。
23.def f(n):return n*f(n-1) if n>0 else 1,f(5)( )
A.120
B.5
C.递归
D.报错
【答案】A
【解析】三元递归:5>0→5*f(4)→...→5*4*3*2*1*1=120。三元+递归简洁实现。
24.def f():nonlocal x;x=10报错因( )
A.x未在全局
B.x不在外层函数
C.语法错误
D.x是参数
【答案】B
【解析】nonlocal需在嵌套函数中使用,修改外层(非全局)变量。此处f不是嵌套函数无法用nonlocal。
25.sorted("bac",key=lambda c:ord(c))结果( )
A.["a","b","c"]
B.["b","a","c"]
C.["c","b","a"]
D.报错
【答案】A
【解析】lambda返回字符ASCII码ord为排序键。a=97最小→排最前。结果升序["a","b","c"]。
三、程序分析题(共3题,每题6分,共18分)
26.def power(base,exp):
result=______
for i in range(exp):
result______base
return result
函数计算base^exp,请在横线处填入适当内容。
【答案】(1)1(3分);(2)*=(3分)。
【解析】result初始1。循环exp次,每次乘base。result*=base等价result=result*base。也可用base**exp或pow。
27.def f(x=[]):
x.append(1)
return x
print(f())
print(f())
【答案】正确输出应为[1]和[1,1]
(1)默认参数不应使用可变对象[],改为def f(x=None): if x is None: x=[](3分);(2)return返回的列表会被后续调用共享修改,建议每次新建列表(3分)。
【解析】默认参数[]只计算一次。第二次调用时x仍是第一次的列表,再append(1)→[1,1]。标准做法的if x is None: x=[]避免累积。
28.def make_adder(n):
return lambda x:x+n
add5=make_adder(5)
add10=make_adder(10)
print(add5(3))
print(add10(3))
【答案】8
13
【解析】make_adder返回lambda闭包,记住n值。add5中n=5,add5(3)=8。add10中n=10,add10(3)=13。闭包各自独立。
四、程序设计题(3题,29/30各6分/31各8分)
29.定义函数gcd(a,b)用辗转相除法求最大公约数。输入两整数,调用输出结果。样例:12 18→6
【答案】def gcd(a,b):
while b:
a,b=b,a%b
return a
a,b=map(int,input().split())
print(gcd(a,b))
【解析】辗转相除法:gcd(a,b)=gcd(b,a%b),直到b=0。while b循环更新a,b。Python 3.5+也可用math.gcd。
30.定义递归函数fib(n)返回第n项斐波那契数。输入n调用输出。前两项为1,1。样例:n=6→8
【答案】def fib(n):
if n<=2:return 1
return fib(n-1)+fib(n-2)
n=int(input())
print(fib(n))
【解析】递归:fib(1)=fib(2)=1基线。fib(n)=fib(n-1)+fib(n-2)。递归简单但效率低(重复计算),适合展示递归思想。
31.定义函数apply_twice(f,x)对x应用函数f两次并返回。输入x和操作符(+或*),用lambda实现。样例:+ 5→7(5+1+1)
【答案】def apply_twice(f,x):
return f(f(x))
x=int(input());op=input()
if op=="+":f=lambda n:n+1
else:f=lambda n:n*2
print(apply_twice(f,x))
【解析】apply_twice调f两次f(f(x))。高阶函数:函数作参数。lambda定义简洁函数传参。+操作:+1两次;*操作:*2两次。
五、综合应用题(共1题,每题12分,共12分)
32.编写学生成绩管理:定义input_scores()读取成绩(-1结束)返回列表;定义analyze(scores)返回(平均分,最高分,最低分,及格人数);主程序调用并输出。样例:85 92 58 73 -1→平均77.0 最高92 最低58 及格3人
【答案】def input_scores():
scores=[]
while True:
s=int(input())
if s==-1:break
scores.append(s)
return scores
def analyze(scores):
avg=sum(scores)/len(scores)
top=max(scores)
bot=min(scores)
cnt=sum(1 for s in scores if s>=60)
return avg,top,bot,cnt
s=input_scores()
avg,top,bot,cnt=analyze(s)
print("平均"+str(round(avg,1))+" 最高"+str(top)+" 最低"+str(bot)+" 及格"+str(cnt)+"人")
【解析】input_scores用while循环读取直到-1。analyze用sum/max/min/生成器表达式统计。函数分解使各职责清晰。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$