2023年12月电子学会Python五级考试真题(含答案和解析)
分数:100 题数:38
一、单选题(共25题,共50分)
1.下面代码的输出结果是?( )
dict1 = {1: 10, 2: 20, 3: 30}
dict2 = {2: 40, 4: 50}
dict1.update(dict2)
print(dict1)
A.{1: 10, 2: 20, 3: 30, 4: 50}
B.{1: 10, 2: 40, 3: 30, 4: 50}
C.{2: 40, 4: 50}
D.报错
答案:B
解析:dict1.update(dict2) 会将 dict2 中的键值对更新到 dict1 中。如果 dict1 和 dict2 有相同的键,则 dict1 中对应键的值会被 dict2 中的值覆盖。所以,dict1 更新后的值为 {1: 10, 2: 40, 3: 30, 4: 50}。
2.小明正在编写一个算法,用于统计一段文本中每个单词出现的频率,并按照频率从高到低进行排序。他使用 Python 字典来记录每个单词及其出现次数。以下哪个选项描述了字典的特点?( )
A.字典是有序的数据结构,可以按照插入顺序访问元素
B.字典可以通过索引访问元素,小明可以通过索引获取单词和对应的出现次数
C.字典包含键-值对,其中键必须是唯一的,小明可以通过每个单词作为键来存储并更新其出现次数
D.字典中的元素可以通过位置进行修改,小明可以根据位置修改单词和对应的出现次数
答案:C
解析:字典的特点在于它存储的是键-值对,并且键必须是唯一的。在统计单词频率时,小明可以将每个单词作为键,其出现次数作为值。
3.列表a=[1,2,3,4,5,6],则a[1]+a[2]的值是?( )
A.3
B.4
C.5
D.6
答案:C
解析:列表 a 的元素为 [1, 2, 3, 4, 5, 6]。a[1] 表示列表中的第二个元素,其值为 2;a[2] 表示列表中的第三个元素,其值为 3。因此,a[1] + a[2] 的值为 2 + 3 = 5。
4.列表list1=[2023,"python","青少年","信息","素养"],则list1[3:]的值是?( )
A.["信息","素养"]
B.["信息"]
C.["青少年","信息","素养"]
D.["素养"]
答案:A
解析:list1[3:] 表示从列表 list1 的第四个元素开始到最后一个元素结束的子列表。因为列表的索引是从0开始的,所以 list1[3] 是第四个元素,即 "信息"。因此,list1[3:] 的值为 ["信息", "素养"]。
5.列表a=[1,2,3,4,5,6],则与a[::-1][-1]的结果相同的表达式是?( )
A.a[1]
B.a[0]
C.a[-1]
D.a[5]
答案:B
解析:a[::-1] 是将列表 a 反转,得到 [6, 5, 4, 3, 2, 1]。然后 a[::-1][-1] 就是取反转后列表的最后一个元素,即原列表的第一个元素,即1。
6.列表list1=[2023,"python","青少年","信息","素养"],则len(list1)的值是?( )
A.3
B.4
C.5
D.6
答案:C
解析:列表 list1 包含5个元素,分别是整数2023、字符串"python"、字符串"青少年"、字符串"信息"和字符串"素养"。因此,len(list1) 的值等于列表中的元素数量,即5。
7.产生一个包含5个元素,公差是3,最大数是13的等差数列,假设range推导式为:range(a,b,c),a,b,c的值正确的是?( )
A.1,16,3
B.1,13,3
C.0,16,3
D.1,6,1
答案:A
解析:等差数列的通项公式是 a_n = a_1 + (n-1) * d,其中 a_n 是第n项,a_1 是首项,d 是公差。根据题目,最大数是13,公差是3,我们需要找到一个首项 a_1,使得 a_5 = 13。计算得 a_5 = a_1 + 4 * 3 = 13,解得 a_1 = 1。因此,等差数列的前五项是 1, 4, 7, 10, 13,对应的 range 函数参数是 range(1, 16, 3)(因为 range 函数不包含结束值)。
8.sfz="987654abcd12345678",下列推导式的值为"abcd"的是?( )
A.sfz[5:9]
B.sfz[5:10]
C.sfz[6:9]
D.sfz[6:10]
答案:D
解析:在Python中,字符串的切片操作 sfz[start:stop] 会返回从索引 start(包含)到索引 stop(不包含)的子字符串。
9.a=[1,2,3,4,5,6,7,8,9,10,11,12],下列索引切片的值为[6,7,8]的是?( )
A.a[6:8]
B.a[5:9]
C.a[5:8]
D.a[6:9]
答案:C
解析:列表 a 包含12个元素。在Python中,列表的切片操作 a[start:stop] 会返回从索引 start(包含)到索引 stop(不包含)的子列表。注意这里的索引是从0开始的。
10.Python中 print('八进制{0:o}'.format(71)) 正确的输出结果是?( )
A.八进制0:o107
B.八进制107
C.八进制0o101
D.八进制101
答案:B
解析:在Python的字符串格式化中,:o 用于将整数转换为八进制表示。'{0:o}'.format(71) 会将整数71转换为八进制表示。71的八进制表示是107,因此输出结果是 "八进制107"。注意格式化字符串中的 {0:o} 并没有前缀 "0o",这是Python格式化输出八进制的标准形式。
11.下面可以正确输出 It's one o'clock. 字符的Python语句是?( )