2023 年 9 月电子学会 Python 三级考试真题(含答案和解析)
分数:100 题数:38 测试时长:90min
一、单选题(共 25 题,共 50 分)
1.有一组数据存在列表中,things=["桌子","椅子","茶几","沙发","西瓜","苹
果","草莓","香蕉"],若想要输出其中的水果数据,则下列处理恰当的是?
(C)
A.print(things)
B.print(things[:4])
C.print(things[4:])
D.print(things[5:8])
答案解析:本题考查一维数组中取出部分数据。things 为列表实现的一维数组,
水果部分数据在列表中位于索引位 4 号至 7 号(末位),故可用列表切片取出
数组的水果部分数据。
2.学期末学校进行了体育测试,其中跳绳项目每人有三次机会,取最好的成绩
为最后得分。小贝、小李和小司三人的成绩数据如下:tscores=[["小
贝",132,126,130],["小李",117,120,123],["小司",129,140,137]],那么要得
到小贝的第二次成绩,下列操作正确的是?(A)
A.tscores[0][2]
B.tscores[1][1]
C.tscores[0[2]]
D.tscores[1[1]]
答案解析:本题考查二维数组中数据获取。二维数组中行和列的数据索引都是
从 0 开始,该二维数组中小贝的第二次成绩,位于第一行第三列,故行索引为
0,列索引为 2,tscores[0],取出第一行,tscores[0][2]可取出第一行第三列
数据。
3.小贝、小李和小司三人三次跳绳的成绩数据如下:tscores=[["小
贝",132,126,130],["小李",117,120,123],["小司",129,140,137]],若要输出
小李同学的最好成绩,则正确的处理方式是?(B)
A.max(tscores[1])
B.max(tscores[1][1:])
C.tscores[1].max()
D.tscores[1][1: ].max()
答案解析:小李同学的成绩位于数组中第二行,行索引为 1,由于每一行数据
有字符串也有数据,故不能直接求最大值,观察选项,可通过对成绩部分选项
先切片取出,再求最大值,结合列表的函数用法可得 B 为正确选项。
4.有如下代码:
gs=['众鸟高飞尽','孤云独去闲','相看两不厌','只有敬亭山']
f=open('jts.txt','w')
f.write(','.join(gs)+'\n')
f.close()
有关于上述代码,正确的说法是?(D)
A.在执行代码前,必须要先新建一个"jts.txt"的文件
B.在文件"jts.txt"中,所有相邻诗句之间将发生换行
C.f.write(','.join(gs)+'\n')也可以用 f.write('\n'.join(gs)+',')替换,
显示结果是相同的
D.该段代码的主要功能是将列表 gs 中的四句 古 诗 写入 到"jts.txt"文件中,诗
句之间以 逗 号 连 成一行
答案解析:本题考查一维数据存 储 。若 “ jts.txt ” 不存在,则将 自动产 生一个 ;
否 则操作结果将 覆盖原 文件。A 错 。由第三行代码 知道 ,gs 列表中 元素
以','相 连 接,最后 才 换行,故 B 错; f.write( ‘ , ’ .join(gs)+ ’ \n ’ )的功
能是诗句相 连 后换行,f.write( ‘ \n ’ .join(gs)+ ’ , ’ )的功能是每输出一句
诗进行换行,最后一句以','结 尾 。结果 并 不相同。C 错 。
5.有关于 简 单文件的 读写 ,下列说法正确的是?(A)
A.可以用 Python 内置 的 open()函数 打 开文件
B.对文件进行 读 取操作, 我们 可以用 write()函数
C.对文件进行 写入 操作, 我们 可以用 close()函数
D.关 闭 文件可以用 rea d ()函数
答案解析:文件 打 开用 open()函数,文件 内容读 取用 rea d ()函数,文件 写入
用 write()函数,文件关 闭 用 close()函数实现。
6. 运 行函数 hex(?) 之后,得到结果是'0xa', 请问括 号中?号处 应填 ?(D)
A."9"
B.9
C."10"
D.10
答案解析:hex() 函数用于将 10 进 制整 数 转 换成 16 进 制 。本题中答案为 十 进
制 数 10,不能 加 引号。
7. 十六 进 制 数 100,对 应 的 十 进 制 数是?(B)
A.128
B.256
C.28
D.56
答案解析:考查学生将 十六 进 制 数 转 为 十 进 制 数。本 质 上 就 是
int('100',16),答案为 256。
8.int()函数可以将 非十 进 制 数 或 数字字符串 转 换为 十 进 制 数,以下关于 int()
函数的 使 用,正确的是?(B)
A.int("0 b 1010",10)
B.int("1010",10)
C.int("0o50",10)
D.int("80",8)
答案解析:本题考查学生对其 它 进 制 数 转十 进 制 数的 掌握 。A、0 b 与 10 矛盾;
C、0o 与 10 矛盾; D、 八 进 制没 有 基 数 “ 8 ” 。
9.下列 4 个表 达 式中,答案不是 整 数 6 的是?(D)
A.a b s( - 6)
B.int(6.88)
C.ro u n d (5.55)
D.min(float(6),9,8,7)
答案解析:考查学生对 内置 数值处理函数的理解。a b s()是取 绝 对值,int() 默
认 会取 整 ,ro u n d ()四 舍五入 ,float()会 把整 数 转 为 浮点 数,min()获取列表中
的最小值,所以,上列 4 个表 达 式,只有选项 D 的答案是 浮点 数 6.0,不是 整 数
6
10. 键盘 输 入“杭州亚运 会 即 将于 2023 年 9 月 23 日 至 10 月 8 日举办 。 ” ,以下
代码的输出结果是?(C)
try:
n=inp u t(" 请 输 入 文字:")
x=n.co u nt("2")
print(x)
except:
print(" 程序 执行 错误 ")
A. 程序 执行 错误
B.2
C.3
D.15
答案解析:co u nt() 方法用于 统计 字符串 里某 个字符 或 子字符串出现的次数 程
序 是 统计 输 入 一段文字中 “ 2 ” 出现的次数,所以执行结果为 3。 程序 正 常运 行
后,不再执行 except 后的 语 句。
11. 初 学 者常采 用 异常 处理解 决程序 中出现的 意外情况 ,下 面语 句的执行结果是?
(B)
try:
s1 = ' 我爱 中 国 '
s2 = 2023
s = s1 + s2
print(s)
except:
print(' 错误 ')
finally:
print(' 程序 结 束 ')
A. 我爱 中 国 2023
程序 结 束
B. 错误
程序 结 束
C. 我爱 中 国 2023
D. 错误
答案解析:s1 = ' 我爱 中 国 ' 是字符串 型; s2 = 2023 是 整型; s = s1 + s2
不能直接相 加 , 程序运 行会 报错 。 因此 会执行 except 语 句, 错误;无论 是 否报
错 , 程序 都会执行 finally,所以最 终运 行结果为 错误 , 程序 结 束 。
12.列表中有 6 个数据, 使 用 冒泡排序算 法进行从小到大 排序 ,最 多需 要处理几
遍 ?(C)
A.3
B.4
C.5
D.6
答案解析:n 个数据的 冒泡排序 , 需 要进行 n - 1 遍排序 。
13.对一组数据[5, 2, 6, 4, 8, 1, 7, 3]进行 排序 , 使 用 冒泡排序按 从大到小
的 顺序 进行 排 列,则第 2 轮排序 过后的结果是?(B)
A.2, 4, 5, 1, 6, 3, 7, 8
B.6, 5, 8, 4, 7, 3, 2, 1
C.5, 6, 4, 8, 2, 7, 3, 1
D.5, 6, 4, 8, 7, 3, 2, 1
答案解析:A 选项最后一个 元素 是 8,是最大的, 排除 。C 选项是第 1 轮排序 的
结果, 排除 。
14.想要 找 出小于 100 的所有 质 数, 适 用的 算 法是?(B)
A.解析 算 法
B. 枚举算 法
C.对分查 找
D.选 择排序
答案解析:小于 100 的 质 数有若 干 个,想要 全 部 找 出 来 , 需 要 使 用一一列 举 的
方法。
15. 运 行下 面 的 程序 ,结果是?(C)
h=[ - 2, - 1,0,1,2,3]
n=len(h)
s=0
for i in range(n):