内容正文:
编写说明:安徽省普通高校对口招生专业理论考试《计算机类考纲百套卷》,依据《安徽省普通高校对口招生计算机类专业课考试纲要》编写。每门课程均分三层训练:紧扣考纲 “掌握”“理解” 要求编写考点训练卷;强化知识交叉与场景关联,按考纲专题编专题训练卷;聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第20卷,按《计算机编程基础-Python语言》范围和要求编写。具体内容为:Python函数的定义和函数的调用。
安徽省《计算机考纲百套卷》 第20卷
《计算机编程基础-Python语言》
函数定义和调用 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.下列关于Python函数的说法,正确的是( )。
A. 函数必须使用 return 返回一个值
B. 函数体内部不能定义另一个函数
C. 函数定义时,参数列表可以为空
D. 函数名可以以数字开头
2.执行以下代码,输出结果是( )。
def add(a, b):
return a + b
result = add(3, 5) + add(1, 2)
print(result)
A. 8
B. 3
C. 11
D. 9
3.下列函数定义中,正确的是( )。
A. def func():
B. def func(x, y):
C. def func(a, b): return a + b
D. 以上都正确
4.关于函数参数的说法,错误的是( )。
A. 位置参数必须按顺序传递
B. 关键字参数可以不按顺序传递
C. 默认参数必须放在位置参数之后
D. 不定长参数只能放在最左边
5.执行下面代码,输出结果是( )。
def show(name, age=18):
print(f"{name}:{age}")
show("张三", 20)
show("李四")
A. 张三:20 李四:18
B. 张三:18 李四:20
C. 张三:20 李四:
D. 报错
6.下面代码的执行结果为( )。
a=5
def test():
a=3
test()
print(a)
A. 3
B. 4
C. 5
D. 6
7.关于 global 关键字的作用,下列说法正确的是( )。
A. 在函数内部定义一个全局变量
B. 在函数内部声明一个变量为全局变量
C. 将局部变量提升为全局变量
D. 删除全局变量
8.下面关于值传递和引用传递的说法,正确的是( )。
A. 不可变类型参数采用引用传递
B. 可变类型参数采用值传递
C. 不可变类型参数在函数内修改不影响外部
D. 可变类型参数在函数内修改不影响外部
9.关于 return 语句,说法错误的是( )。
A. 函数可以没有 return 语句
B. 函数可以返回多个值,实际返回一个元组
C. return 语句后面可以不接表达式
D. 一个函数只能有一个 return 语句
10.执行下面代码,输出结果是( )。
def calc(x, y=2, z=3):
return x + y + z
print(calc(1, z=5))
A. 8
B. 6
C. 9
D. 10
11.下面哪个选项可以导入 math 模块中的 sqrt 函数并重命名为 sq( )。
A. import math.sqrt as sq
B. from math import sqrt as sq
C. from math import sq
D. import sqrt from math as sq
12.下面代码的执行结果为( )。
def test(a,b,*c):
a=a-b
b=a+b
s=a+b
for i in c:
s+=i
return s
print(test(3,2,3,4,5))
A. 13
B. 14
C. 15
D. 16
13.下面代码的执行结果为( )。
a=5
def test():
global a
b=2
a+=b
test()
print(a)
A. 5
B. 6
C. 7
D. 报错
14.下面代码的执行结果为( )。
def fun(a, b, c):
return a * b + c
print(fun(1,2,fun(c=3, a=2, b=4)))
A. 11
B. 12
C. 13
D. 14
15.下面代码的执行结果为( )。
def fun(a,b=[]):
b=[]
b.append(a)
return b
print(fun(1),end=" ")
print(fun(2))
A. [1] [2]
B. [1] [1,2]
C. [1] []
D. 报错
16.下面代码的执行结果为( )。
def fun(a,b=[]):
b.append(a)
return b
print(fun(1),end=" ")
print(fun(2))
A. [1] [2]
B. [1] [1,2]
C. [1] []
D. 报错
17.执行下面代码,输出结果是( )。
def test(*args, **kwargs):
print(len(args) + len(kwargs))
test(1,2,3, a=4, b=5)
A. 3
B. 5
C. 2
D. 4
18.关于局部变量和全局变量,下列说法正确的是( )。
A. 在函数内部可以直接修改全局变量
B. 在函数内部定义与全局变量同名的变量,会修改全局变量
C. 使用 global 关键字可以声明全局变量
D. 函数内部定义的变量在函数结束后仍然存在
19.执行下面代码,输出结果是( )。
def fun(a,b=2,c=3,*d):
a+=b+c
b-=a+c
c+=a-b
s=c
for i in d:
s+=i
return s
print(fun(3,4,5,6,7,8))
A. 32
B. 35
C. 48
D. 51
20.下面说法错误的是( )。
A. 默认参数必须放在位置参数的右侧
B. 字典不定长参数也必须放在元组不定长的右侧
C. 函数可以提高代码的执行速度
D. 关键字参数可以忽略传递参数时的位置
二、填空题(本大题共10小题,每题2分,共20分)
1.在Python中,使用关键字 ________ 定义函数。
2.函数体内部的变量称为 ________,其作用域仅限于函数内部。
3.如果函数没有 return 语句,则默认返回 ________。
4.在函数定义时,参数 *args 用于接收 ________ 类型的不定长参数。
5.在函数定义时,参数 **kwargs 用于接收 ________ 类型的不定长参数。
6.在函数内部修改全局变量时,需要使用 ________ 关键字声明。
7.调用函数时,使用 参数名=值 的形式传递的参数称为 ________ 参数。
8.函数的默认参数必须放在 ________ 参数的右侧。
9.执行下面代码,输出结果为 ________。
def func(x, y=2):
return x * y
print(func(y=3,x=3))
10.执行下面代码,输出结果为 ________。
def test(a, *b,**c):
return a + sum(b)+len(c)
print(test(1,2,3,4,aa=1,bb=2))
三、程序设计题(本大题共4小题,每题10分,共40分)
1.编写一个函数is_prime(n),接收一个正整数n,判断它是否为素数。如果是素数,返回True,否则返回False。
2.编写一个函数sxh来判断是否为水仙花。键盘输入两个三位数整数,找出两个整数之间所有的水仙花。
3.键盘输入行数n,然后使用函数封装输出n行的乘法表。
4.编写一个函数is_prime(n),判断它是否为素数。然后计算1-100之间素数的累加和。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:安徽省普通高校对口招生专业理论考试《计算机类考纲百套卷》,依据《安徽省普通高校对口招生计算机类专业课考试纲要》编写。每门课程均分三层训练:紧扣考纲 “掌握”“理解” 要求编写考点训练卷;强化知识交叉与场景关联,按考纲专题编专题训练卷;聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第20卷,按《计算机编程基础-Python语言》范围和要求编写。具体内容为:Python函数的定义和函数的调用。
安徽省《计算机考纲百套卷》 第20卷
《计算机编程基础-Python语言》
函数定义和调用 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.下列关于Python函数的说法,正确的是( )。
A. 函数必须使用 return 返回一个值
B. 函数体内部不能定义另一个函数
C. 函数定义时,参数列表可以为空
D. 函数名可以以数字开头
【答案】C
【解析】
A错误:函数可以没有return,默认返回None。
B错误:函数内部可以嵌套定义函数。
C正确:函数参数列表可以为空,如 def func():。
D错误:函数名不能以数字开头。
2.执行以下代码,输出结果是( )。
def add(a, b):
return a + b
result = add(3, 5) + add(1, 2)
print(result)
A. 8
B. 3
C. 11
D. 9
【答案】C
【解析】add(3,5)=8,add(1,2)=3,和=11。
3.下列函数定义中,正确的是( )。
A. def func():
B. def func(x, y):
C. def func(a, b): return a + b
D. 以上都正确
【答案】D
【解析】A、B、C都是合法的函数定义形式。
4.关于函数参数的说法,错误的是( )。
A. 位置参数必须按顺序传递
B. 关键字参数可以不按顺序传递
C. 默认参数必须放在位置参数之后
D. 不定长参数只能放在最左边
【答案】D
【解析】不定长参数必须放在位置参数和默认参数的最右边。
5.执行下面代码,输出结果是( )。
def show(name, age=18):
print(f"{name}:{age}")
show("张三", 20)
show("李四")
A. 张三:20 李四:18
B. 张三:18 李四:20
C. 张三:20 李四:
D. 报错
【答案】A
【解析】第一次调用传入20覆盖默认值,第二次使用默认值18
6.下面代码的执行结果为( )。
a=5
def test():
a=3
test()
print(a)
A. 3
B. 4
C. 5
D. 6
【答案】C
【解析】函数内部的a是局部变量,不影响全局变量a。
7.关于 global 关键字的作用,下列说法正确的是( )。
A. 在函数内部定义一个全局变量
B. 在函数内部声明一个变量为全局变量
C. 将局部变量提升为全局变量
D. 删除全局变量
【答案】B
【解析】global用于在函数内部声明变量为全局变量,以便修改。
8.下面关于值传递和引用传递的说法,正确的是( )。
A. 不可变类型参数采用引用传递
B. 可变类型参数采用值传递
C. 不可变类型参数在函数内修改不影响外部
D. 可变类型参数在函数内修改不影响外部
【答案】C
【解析】不可变类型传递副本,修改不影响外部;可变类型传递引用,修改影响外部
9.关于 return 语句,说法错误的是( )。
A. 函数可以没有 return 语句
B. 函数可以返回多个值,实际返回一个元组
C. return 语句后面可以不接表达式
D. 一个函数只能有一个 return 语句
【答案】D
【解析】函数可以有多个return,但只会执行其中一个
10.执行下面代码,输出结果是( )。
def calc(x, y=2, z=3):
return x + y + z
print(calc(1, z=5))
A. 8
B. 6
C. 9
D. 10
【答案】A
【解析】x=1,y使用默认值2,z=5,和=8。
11.下面哪个选项可以导入 math 模块中的 sqrt 函数并重命名为 sq( )。
A. import math.sqrt as sq
B. from math import sqrt as sq
C. from math import sq
D. import sqrt from math as sq
【答案】B
【解析】标准语法:from 模块 import 函数 as 别名。
12.下面代码的执行结果为( )。
def test(a,b,*c):
a=a-b
b=a+b
s=a+b
for i in c:
s+=i
return s
print(test(3,2,3,4,5))
A. 13
B. 14
C. 15
D. 16
【答案】D
【解析】
a=3-2=1
b=1+2=3
s=1+3=4
遍历c=[3,4,5]:s=4+3+4+5=16
13.下面代码的执行结果为( )。
a=5
def test():
global a
b=2
a+=b
test()
print(a)
A. 5
B. 6
C. 7
D. 报错
【答案】C
【解析】global a声明后,a为全局变量,a+=2使a变为7。
14.下面代码的执行结果为( )。
def fun(a, b, c):
return a * b + c
print(fun(1,2,fun(c=3, a=2, b=4)))
A. 11
B. 12
C. 13
D. 14
【答案】C
【解析】
内层fun(c=3,a=2,b=4):2*4+3=11
外层fun(1,2,11):1*2+11=13
15.下面代码的执行结果为( )。
def fun(a,b=[]):
b=[]
b.append(a)
return b
print(fun(1),end=" ")
print(fun(2))
A. [1] [2]
B. [1] [1,2]
C. [1] []
D. 报错
【答案】A
【解析】函数内部b=[]重新初始化,每次调用都是新列表。
16.下面代码的执行结果为( )。
def fun(a,b=[]):
b.append(a)
return b
print(fun(1),end=" ")
print(fun(2))
A. [1] [2]
B. [1] [1,2]
C. [1] []
D. 报错
【答案】B
【解析】默认参数只在定义时初始化一次,多次调用共享同一个列表对象。
17.执行下面代码,输出结果是( )。
def test(*args, **kwargs):
print(len(args) + len(kwargs))
test(1,2,3, a=4, b=5)
A. 3
B. 5
C. 2
D. 4
【答案】B
【解析】args有3个元素,kwargs有2个元素,和=5。
18.关于局部变量和全局变量,下列说法正确的是( )。
A. 在函数内部可以直接修改全局变量
B. 在函数内部定义与全局变量同名的变量,会修改全局变量
C. 使用 global 关键字可以声明全局变量
D. 函数内部定义的变量在函数结束后仍然存在
【答案】C
【解析】
A错误:需要global才能修改。
B错误:同名局部变量会屏蔽全局变量。
C正确。
D错误:局部变量在函数结束后被销毁。
19.执行下面代码,输出结果是( )。
def fun(a,b=2,c=3,*d):
a+=b+c
b-=a+c
c+=a-b
s=c
for i in d:
s+=i
return s
print(fun(3,4,5,6,7,8))
A. 32
B. 35
C. 48
D. 51
【答案】D
【解析】
a=3, b=4, c=5, d=(6,7,8)
a=3+4+5=12
b=4-(12+5)=4-17=-13
c=5+(12-(-13))=5+25=30
s=30
遍历d: 30+6+7+8=51
20.下面说法错误的是( )。
A. 默认参数必须放在位置参数的右侧
B. 字典不定长参数也必须放在元组不定长的右侧
C. 函数可以提高代码的执行速度
D. 关键字参数可以忽略传递参数时的位置
【答案】C
【解析】函数提高代码的可读性和可维护性,但不一定能提高执行速度。
二、填空题(本大题共10小题,每题2分,共20分)
1.在Python中,使用关键字 ________ 定义函数。
【答案】def
【解析】def定义函数
2.函数体内部的变量称为 ________,其作用域仅限于函数内部。
【答案】局部变量
【解析】局部变量就是定义在函数的内部
3.如果函数没有 return 语句,则默认返回 ________。
【答案】None
【解析】函数没有指定返回值则返回默认值None
4.在函数定义时,参数 *args 用于接收 ________ 类型的不定长参数。
【答案】元组
【解析】元组不定长参数是在参数前面加一个*
5.在函数定义时,参数 **kwargs 用于接收 ________ 类型的不定长参数。
【答案】字典
【解析】字典不定长参数是在参数前面加两个*
6.在函数内部修改全局变量时,需要使用 ________ 关键字声明。
【答案】global
【解析】使用global声明全局变量
7.调用函数时,使用 参数名=值 的形式传递的参数称为 ________ 参数。
【答案】关键字
【解析】关键字参数采用“参数名=值”的形式
8.函数的默认参数必须放在 ________ 参数的右侧。
【答案】位置
【解析】默认参数必须放在位置参数的最右侧
9.执行下面代码,输出结果为 ________。
def func(x, y=2):
return x * y
print(func(y=3,x=3))
【答案】9
【解析】关键字参数,x=3, y=3,3*3=9。
10.执行下面代码,输出结果为 ________。
def test(a, *b,**c):
return a + sum(b)+len(c)
print(test(1,2,3,4,aa=1,bb=2))
【答案】12
【解析】a=1,b=(2,3,4)和为9,c有2个键值对,len=2,总和=1+9+2=12。
三、程序设计题(本大题共4小题,每题10分,共40分)
1.编写一个函数is_prime(n),接收一个正整数n,判断它是否为素数。如果是素数,返回True,否则返回False。
【答案】
def is_prime(n):
if n<2:
return False
for i in range(2,n):
if n%i==0:
return False
return True
n=int(input("请输入一个正整数:"))
print(is_prime(n))
【解析】遍历2到n-1,若存在因数则不是素数。
2.编写一个函数sxh来判断是否为水仙花。键盘输入两个三位数整数,找出两个整数之间所有的水仙花。
【答案】
def sxh(a,b):
for i in range(a,b+1):
bw,sw,gw=i//100,i//10%10,i%10
if bw**3+sw**3+gw**3==i:
print(i)
m,n=eval(input("请输入两个整数:"))
sxh(m,n)
【解析】遍历区间,提取百、十、个位,判断立方和是否等于原数。
3.键盘输入行数n,然后使用函数封装输出n行的乘法表。
【答案】
def cfb(n):
for i in range(1,n+1):
for j in range(1,i+1):
print(f"{j}*{i}={j*i}",end="\t")
print()
n=int(input("请输入行数:"))
cfb(n)
【解析】外层循环控制行数,内层循环控制每行列数。
4.编写一个函数is_prime(n),判断它是否为素数。然后计算1-100之间素数的累加和。
【答案】
def is_prime(n):
if n<2:
return False
for i in range(2,n):
if n%i==0:
return False
return True
s=0
for i in range(1,101):
if is_prime(i):
s+=i
print(s)
【解析】调用素数判断函数,累加所有素数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$