内容正文:
《Python 程序编写入门》高等教育出版社
第4单元 “引用”,与让编程事半功倍
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共20小题,每小题2分,共40分)
1.以下关于 Python 函数参数的说法,正确的是( )。
A. 调用位置参数时,参数顺序可以任意调换
B. 调用关键字参数时,必须严格按照定义顺序
C. 当函数设定默认参数时,不传值则使用默认值,传值则覆盖
D. 可变长度参数*args只能接收列表类型数据
【答案】C
【解析】 位置参数需一一对应顺序,A 错;关键字参数可打乱顺序,B 错;*args接收任意多个非关键字参数,常打包成元组,D 错;默认参数不传用默认、传值覆盖,C 正确。
2.关于 Python 模块导入,以下写法错误的是( )。
A. import math
B. from math import sin as s
C. from sys import *
D. import os.path as op
【答案】D
【解析】os.path是os模块的子模块,不能直接用import os.path as op,应先import os再操作os.path;A、B、C 是合法的模块/函数导入及别名用法。
3.以下关于递归函数的描述,错误的是( )。
A. 递归本质是函数自身调用
B. 必须设置终止条件,否则会无限递归
C. 递归一定比循环效率高
D. 递归没有终止条件会触发“超过最大递归深度”错误
【答案】C
【解析】递归因频繁函数调用、栈帧创建,多数情况效率低于循环,C 错;A、B、D 符合递归特性与规则,选 C。
4. Python 中,lambda表达式的特点是( )。
A. 可以定义复杂的多行函数逻辑
B. 能包含return语句
C. 是匿名函数,常用于简单逻辑场景
D. 必须定义函数名
【答案】C
【解析】lambda是匿名函数,语法简洁,用于一行式简单逻辑,A(多行不行 )、B(隐式返回,不用return )、D(无函数名 )错误,C 正确。
5.关于 Python 内置函数len(),说法正确的是( )。
A. 只能用于计算字符串长度
B. 可计算列表、元组、字典、集合等对象的元素个数
C. 计算字典时,统计的是键值对总数
D. 计算集合时,结果包含重复元素数量
【答案】B
【解析】len()用于统计可迭代对象(字符串、列表、元组、字典、集合等 )的“元素个数”,字典统计键值对数量(B 表述宽泛正确 ,C 是 B 细分场景 );集合自动去重,len()统计去重后元素数,D 错;A 限定太窄,B 最全面,所以选B。
6.以下哪个模块可用于处理文件和目录操作( )。
A. turtle
B. os
C. sys
D. Math
【答案】B
【解析】 os模块提供文件、目录操作功能(创建、删除、遍历等 );turtle绘图,sys与解释器交互,math数学运算,故选 B。
7.定义函数def func(a, b=5):,以下调用正确的是( )。
A. func(3) # b 用默认值 5
B. func(b=3, 2) # 位置参数不能在关键字参数后
C. func(, 3) # 缺少位置参数 a
D. func(a=2, c=3) # 函数无参数 c
【答案】A
【解析】B 中位置参数2在关键字参数b=3后,语法错误;C 缺少a的实参;D 传入未定义参数c;A 只传a的实参,b用默认值,正确。所以选A
8.以下关于 Python 函数返回值的说法,错误的是( )
A. 函数可以没有return语句,默认返回None
B. 函数可以用return返回多个值,实际打包成元组
C. return语句执行后,函数会立即结束运行
D. 多个return语句可以同时执行
【答案】D
【解析】函数里return执行即终止函数,多个return按逻辑只会执行一个(如分支里 ),D 错;A、B、C 符合函数返回值规则。
9.Python 中,以下哪种操作能让代码块逻辑更清晰,属于语法要求的是( )。
A. 空格
B. 缩进
C. 换行
D. 注释
【答案】B
【解析】Python 用缩进(通常 4 个空格或 1 个制表符 )区分代码块逻辑,是语法规定;空格、换行不承担此语法功能,注释是说明代码,不影响逻辑结构,所以选 B。
10.以下能生成0 - 9(含 9 )随机整数的是( )
A. random.randint(0, 9)
B. random.random()
C. random.uniform(0, 9)
D. random.choice(range(9))
【答案】A
【解析】A randint(a, b)生成[a, b]整数,符合;B 生成[0,1)浮点数;C 生成[a, b]浮点数;D range(10)是0 - 9,choice选一个元素(整数 ),D 作用是从 0 到 8 这 9 个整数中随机选择一个并返回。
11.关于 Python 全局变量和局部变量,说法正确的是( )
A. 局部变量在函数外也可访问
B. 全局变量在函数内修改,必须用global声明
C. 函数内定义的变量,一定是局部变量
D. nonlocal关键字用于声明全局变量
【答案】B
【解析】 局部变量作用域仅限函数内,A 错;函数内修改全局变量需global声明,B 正确;函数内若用global声明,可操作全局变量,不全是局部,C 错;nonlocal用于嵌套函数中修改外层(非全局 )变量,D 错。
12.以下关于try - except异常处理的说法,正确的是( )
A. try块里的代码一定能全部执行完
B. 只要try块报错,就执行except块,不管啥错误类型
C. 可以有多个except块捕获不同类型错误
D. else块必须和except块一起用,不能单独跟try
【答案】C
【解析】try块若触发异常,会中断执行转except,A 错;except可指定错误类型,只捕获匹配的,B 错;可多个except分捕不同错误,C 正确;else块跟在try后,try无异常时执行,可单独用(无except时语法允许但少用 ),D 错。
13.关于 Python 第三方库安装,正确的是( )
A. 可用pip install 库名安装,如pip install requests
B. 安装后就一定能直接import,无需其他操作
C. 所有第三方库都能通过pip安装
D. 安装时若报错,一定是网络问题
【答案】A
【解析】pip是常用安装工具,A 正确;安装后要确保库在 Python 环境路径,B 太绝对;有些库需额外编译环境或特殊安装方式,C 错;报错可能因网络、依赖、系统环境等,D 错。
14.标准自定义函数必须以关键字( )开始。
A. def
B. class
C. for
D. try
【答案】A
【解析】Python中用def定义函数,class定义类,for是循环关键字,try用于异常处理,选A。
15.标准自定义函数中,实现函数功能的代码段是( )
A. 函数名称
B. 函数体
C. 参数
D. return返回值
【答案】B
【解析】函数体是def缩进块内的代码,实现具体逻辑;函数名称是标识,参数是输入,return是输出,选B。
16.代码n=5; def guo(x,y=20): return x*y*n; print(guo(10,1)) 运行结果为( )
A. 200
B. 50
C. 20
D. 10
【答案】B
【解析】n=5 是全局变量,函数内直接使用,x=10 y=1 ,10*1*5=50 ,输出50,选B。
17.以下关于 Python 函数返回值的说法,错误的是( )
A. 函数可以没有return语句,默认返回None
B. 函数可以用return返回多个值,实际打包成元组
C. return语句执行后,函数会立即结束运行
D. 多个return语句可以同时执行
【答案】D
【解析】函数里return执行即终止函数,多个return按逻辑只会执行一个(如分支里 ),D 错;A、B、C 符合函数返回值规则。
18.要查看os模块里所有函数和属性,可使用( )
A. os.help()
B. dir(os)
C. help()
D. os.dir()
【答案】C
【解析】dir(os)列出os模块的属性、函数等名称;;help() 是一个内置函数,用于获取对象、函数、模块等的帮助信息。A、D 不是合法用法,故选 B。
19.Python 中,属于数学运算相关模块的是( )
A. math
B. random
C. numpy
D. turtle
【答案】A
【解析】标准库中math专注数学运算;random侧重随机数生成(虽涉数学但功能不同 );numpy是第三方库(题目若默认考标准库,选 A ;若包含第三方,可算,但常规单元测多考标准库,选 A );turtle绘图,不选。
20.代码import time; t = time.gmtime(); print(time.strftime("%Y-%m-%d %H:%M:%S", t)) ,输出是( )
A. 系统当前日期
B. 系统当前时间
C. 系统当前日期和时间
D. 错误信息
【答案】C
【解析】gmtime获取UTC时间,strftime按格式输出日期和时间,选C。
二、填空题(本大题共20小题,每小题2分,共40分)
1.def func(a, b=5): 中,b 是______参数,调用时未传b 则用默认值______。
【答案】默认;5
【解析】带默认值的参数是默认参数,未传值时用定义的默认值(5 )。
2.*args 接收任意多______参数,打包成______;**kwargs 接收任意多关键字参数,打包成字典。
【答案】位置;元组
【解析】*args 处理零散位置参数(元组 ),**kwargs 处理零散关键字参数(字典 )。
3.函数内用______ 关键字声明变量为全局变量,可修改全局作用域该变量。
【答案】global
【解析】global 声明后,函数内对该变量的修改会影响全局变量。
4.模块导入方式from 模块名 import 函数名 ,调用时可直接用______,无需模块名前缀。
【答案】函数名
【解析】对比import 模块名 需模块名.函数名 ,此方式简化调用。
5.时间模块time 中,time.time() 返回______,单位是秒。
【答案】当前时间戳
【解析】当前时间戳(从1970年1月1日0时0分0秒到现在的秒数 ),时间戳用于计时、计算时间差等场景。
6.模块os 中,获取当前工作目录的函数是______ ,需import os 。
【答案】os.getcwd()
【解析】os.getcwd() 返回当前脚本运行的工作目录路径。
7.Python中,定义函数的关键字是______,函数调用时通过______执行函数体代码。
【答案】def;函数名加括号(函数名() )
【解析】def 是定义函数的关键字,调用函数需用函数名() 触发函数体执行。
8.递归函数的两个必要条件是______和______。
【答案】调用自身;有终止条件(基线条件 )
【解析】递归需自身调用形成递归过程,同时要有终止条件防止无限递归。
9.执行代码a = [1, 2, 3]; def func(lst): lst.append(4); func(a); print(a) ,输出结果是______,因为列表是______类型(可变/不可变 )。
【答案】[1, 2, 3, 4];可变
【解析】列表是可变类型,函数内修改列表(append 操作 )会影响函数外的列表对象,所以a 会被添加元素4 。
10.模块os 中,删除文件的函数是______,删除空目录的函数是______。
【答案】os.remove;os.rmdir
【解析】os.remove 用于文件删除,os.rmdir 用于删除空目录(目录非空时无法删除 )。
11.函数作用域分为______作用域和______作用域。
【答案】全局;局部
【解析】全局作用域变量在整个程序有效,局部作用域变量仅在函数、代码块等局部范围有效。
12.导入模块并起别名的方式是**import 模块名 as 别名** ,例如导入numpy 模块并起别名为np ,写法是______。
【答案】import numpy as np
【解析】as 关键字用于给模块、函数等起别名,简化调用,通过别名.内容 访问模块内容。
13.在time标准库中,用于实现最终停留 5s 的语句为___ 。
【答案】time.sleep(5)
【解析】time库的sleep函数可让程序暂停指定秒数,参数填 5 就实现暂停 5 秒 。
14.在calendar标准库中,用于判断年份是否为闰年的函数为___ 。
【答案】calendar.isleap()
【解析】calendar库的isleap函数,传入年份参数,可判断该年份是否为闰年 。
15.sys标准库中,表示“实现程序中间退出”的函数方法 ,执行它会让程序终止运行。
【答案】sys.exit()
【解析】sys.exit()调用后,会使程序立即停止执行,退出运行状态 。
16.re标准库中,正则表达式中的“___”元字符,表示“匹配前一个字符零次或多次”。
【答案】*
【解析】正则表达式里,*作为元字符,作用是匹配前面紧邻的字符出现零次到多次的情况 。
17.math标准库中,求算术平方根的函数为___ 。
【答案】math.sqrt()
【解析】math库的sqrt函数,接收一个非负数值参数,返回其算术平方根 。
18.标准自定义函数中,实现函数功能的代码段是___ 。
【答案】函数体
【解析】函数定义时,def关键字后,return等语句前的代码部分就是函数体,用来实现具体功能 。
19.标准自定义函数,可选参数一般都放置在非可选参数的___ 。
【答案】后面
【解析】Python 函数参数定义规范,可选参数(带默认值 )要放在位置参数(非可选 )的后面,保证参数解析正常 。
20.在 Python 中,要使用random库生成一个区间中的整数,可使用___函数。
【答案】random.randint()
【解析】random.randint(a, b)函数能生成一个[a, b]区间内的整数,是random库常用生成整数随机数的函数 。
三、程序编写题(本大题共4小题,每小题5分,共20分)
1.编写函数sum_digits(n),返回整数 n 的各位数字之和(n 为非负整数)。
【答案】
def sum_digits(n):
"""返回整数n的各位数字之和"""
total = 0
while n > 0:
total += n % 10
n = n // 10
return total
# 测试
print(sum_digits(n))
2.编写函数factorial(n),计算 n 的阶乘(n 为非负整数,0 的阶乘为 1)。
【答案】
def factorial(n):
"""计算n的阶乘"""
result = 1
for i in range(1, n+1):
result *= i
return result
# 测试
print(factorial(n))
3.编写函数gcd(a, b),计算两个正整数 a 和 b 的最大公约数(使用辗转相除法)。
【答案】
def gcd(a, b):
"""计算a和b的最大公约数"""
while b != 0:
a, b = b, a % b
return a
a=eval(input(“输入正整数a”))
b=eval(input(“输入正整数b”))
print(gcd(a, b))
4.编写函数join_strings(str_list, sep),将字符串列表 str_list 用分隔符 sep 拼接成一个字符串。
【答案】
def join_strings(str_list, sep):
"""将字符串列表用分隔符拼接"""
result = ""
for i, s in enumerate(str_list):
result += s + (sep if i < len(str_list)-1 else "")
return result
print(join_strings(["Hello", "World"], " ")) # 输出"Hello World"
print(join_strings(["a", "b", "c"], "-")) # 输出"a-b-c"
学科网(北京)股份有限公司
$$
《Python 程序编写入门》高等教育出版社
第4单元 “引用”,与让编程事半功倍
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共20小题,每小题2分,共40分)
1.以下关于 Python 函数参数的说法,正确的是( )。
A. 调用位置参数时,参数顺序可以任意调换
B. 调用关键字参数时,必须严格按照定义顺序
C. 当函数设定默认参数时,不传值则使用默认值,传值则覆盖
D. 可变长度参数*args只能接收列表类型数据
2.关于 Python 模块导入,以下写法错误的是( )。
A. import math
B. from math import sin as s
C. from sys import *
D. import os.path as op
3.以下关于递归函数的描述,错误的是( )。
A. 递归本质是函数自身调用
B. 必须设置终止条件,否则会无限递归
C. 递归一定比循环效率高
D. 递归没有终止条件会触发“超过最大递归深度”错误
4. Python 中,lambda表达式的特点是( )。
A. 可以定义复杂的多行函数逻辑
B. 能包含return语句
C. 是匿名函数,常用于简单逻辑场景
D. 必须定义函数名
5.关于 Python 内置函数len(),说法正确的是( )。
A. 只能用于计算字符串长度
B. 可计算列表、元组、字典、集合等对象的元素个数
C. 计算字典时,统计的是键值对总数
D. 计算集合时,结果包含重复元素数量
6.以下哪个模块可用于处理文件和目录操作( )。
A. turtle
B. os
C. sys
D. Math
7.定义函数def func(a, b=5):,以下调用正确的是( )。
A. func(3) # b 用默认值 5
B. func(b=3, 2) # 位置参数不能在关键字参数后
C. func(, 3) # 缺少位置参数 a
D. func(a=2, c=3) # 函数无参数 c
8.以下关于 Python 函数返回值的说法,错误的是( )
A. 函数可以没有return语句,默认返回None
B. 函数可以用return返回多个值,实际打包成元组
C. return语句执行后,函数会立即结束运行
D. 多个return语句可以同时执行
9.Python 中,以下哪种操作能让代码块逻辑更清晰,属于语法要求的是( )。
A. 空格
B. 缩进
C. 换行
D. 注释
10.以下能生成0 - 9(含 9 )随机整数的是( )
A. random.randint(0, 9)
B. random.random()
C. random.uniform(0, 9)
D. random.choice(range(9))
11.关于 Python 全局变量和局部变量,说法正确的是( )
A. 局部变量在函数外也可访问
B. 全局变量在函数内修改,必须用global声明
C. 函数内定义的变量,一定是局部变量
D. nonlocal关键字用于声明全局变量
12.以下关于try - except异常处理的说法,正确的是( )
A. try块里的代码一定能全部执行完
B. 只要try块报错,就执行except块,不管啥错误类型
C. 可以有多个except块捕获不同类型错误
D. else块必须和except块一起用,不能单独跟try
13.关于 Python 第三方库安装,正确的是( )
A. 可用pip install 库名安装,如pip install requests
B. 安装后就一定能直接import,无需其他操作
C. 所有第三方库都能通过pip安装
D. 安装时若报错,一定是网络问题
14.标准自定义函数必须以关键字( )开始。
A. def
B. class
C. for
D. try
15.标准自定义函数中,实现函数功能的代码段是( )
A. 函数名称
B. 函数体
C. 参数
D. return返回值
16.代码n=5; def guo(x,y=20): return x*y*n; print(guo(10,1)) 运行结果为( )
A. 200
B. 50
C. 20
D. 10
17.以下关于 Python 函数返回值的说法,错误的是( )
A. 函数可以没有return语句,默认返回None
B. 函数可以用return返回多个值,实际打包成元组
C. return语句执行后,函数会立即结束运行
D. 多个return语句可以同时执行
18.要查看os模块里所有函数和属性,可使用( )
A. os.help()
B. dir(os)
C. help()
D. os.dir()
19.Python 中,属于数学运算相关模块的是( )
A. math
B. random
C. numpy
D. turtle
20.代码import time; t = time.gmtime(); print(time.strftime("%Y-%m-%d %H:%M:%S", t)) ,输出是( )
A. 系统当前日期
B. 系统当前时间
C. 系统当前日期和时间
D. 错误信息
二、填空题(本大题共20小题,每小题2分,共40分)
1.def func(a, b=5): 中,b 是______参数,调用时未传b 则用默认值______。
2.*args 接收任意多______参数,打包成______;**kwargs 接收任意多关键字参数,打包成字典。
3.函数内用______ 关键字声明变量为全局变量,可修改全局作用域该变量。
4.模块导入方式from 模块名 import 函数名 ,调用时可直接用______,无需模块名前缀。
5.时间模块time 中,time.time() 返回______,单位是秒。
6.模块os 中,获取当前工作目录的函数是______ ,需import os 。
7.Python中,定义函数的关键字是______,函数调用时通过______执行函数体代码。
8.递归函数的两个必要条件是______和______。
9.执行代码a = [1, 2, 3]; def func(lst): lst.append(4); func(a); print(a) ,输出结果是______,因为列表是______类型(可变/不可变 )。
10.模块os 中,删除文件的函数是______,删除空目录的函数是______。
11.函数作用域分为______作用域和______作用域。
12.导入模块并起别名的方式是**import 模块名 as 别名** ,例如导入numpy 模块并起别名为np ,写法是______。
13.在time标准库中,用于实现最终停留 5s 的语句为___ 。
14.在calendar标准库中,用于判断年份是否为闰年的函数为___ 。
15.sys标准库中,表示“实现程序中间退出”的函数方法 ,执行它会让程序终止运行。
16.re标准库中,正则表达式中的“___”元字符,表示“匹配前一个字符零次或多次”。
17.math标准库中,求算术平方根的函数为___ 。
18.标准自定义函数中,实现函数功能的代码段是___ 。
19.标准自定义函数,可选参数一般都放置在非可选参数的___ 。
20.在 Python 中,要使用random库生成一个区间中的整数,可使用___函数。
三、程序编写题(本大题共4小题,每小题5分,共20分)
1.编写函数sum_digits(n),返回整数 n 的各位数字之和(n 为非负整数)。
2.编写函数factorial(n),计算 n 的阶乘(n 为非负整数,0 的阶乘为 1)。
3.编写函数gcd(a, b),计算两个正整数 a 和 b 的最大公约数(使用辗转相除法)。
4.编写函数join_strings(str_list, sep),将字符串列表 str_list 用分隔符 sep 拼接成一个字符串。
学科网(北京)股份有限公司
$$