内容正文:
编写说明:安徽省普通高校对口招生专业理论考试《计算机类考纲百套卷》,依据《安徽省普通高校对口招生计算机类专业课考试纲要》编写。每门课程均分三层训练:紧扣考纲 “掌握”“理解” 要求编写考点训练卷;强化知识交叉与场景关联,按考纲专题编专题训练卷;聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第14卷,按《计算机编程基础-Python语言》范围和要求编写。具体内容为:Python字典的定义、创建字典、字典的特性、字典的基本操作、字典的操作函数、成员判断、获取键的列表和字典长度。
安徽省《计算机考纲百套卷》 第14卷
《计算机编程基础-Python语言》
字典 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.下列关于Python字典的描述,正确的是( )。
A. 字典中的键可以是列表
B. 字典中的值必须是不可变类型
C. 字典的键值对是有序的
D. 字典中的键必须唯一
【答案】D
【解析】
A错误:列表是可变类型,不能作为字典的键(键必须可哈希)。
B错误:字典的值可以是任意类型,包括可变类型。
C错误:Python 3.7+ 字典保持插入顺序,但描述“键值对是有序的”在早期版本无序,且严格说字典是无序的,但现代Python中顺序有保证。但通常考试仍强调字典无序。选项D为最正确。
D正确:键必须唯一,重复键会覆盖
2.创建空字典的正确方式是( )。
A. {}
B. set()
C. {[]}
D. {()}
【答案】A
【解析】
A:{} 创建空字典。
B:set() 创建空集合。
C:{[]} 错误,列表不能作为键。
D:{()} 创建包含一个空元组键的字典,不是空字典
3.执行 dict([("a",2),("b",4)]) 后,d的值是( )。
A. {('a': 2),('b': 4)}
B. [("a",2),("b",4)]
C. {"a",2,"b",4}
D. {'a': 2, 'b': 4}
【答案】D
【解析】dict()函数接受一个包含键值对的可迭代对象(如列表、元组),每个元素是一个长度为2的序列,将其转换为字典。结果为{'a':2, 'b':4}。
4.执行 d = {"a":1, "b":2, "a":3}; print(d["a"]) 的输出是( )。
A. 1
B. 2
C. 3
D. 报错
【答案】C
【解析】字典中键唯一,重复的键"a"后面的值会覆盖前面的,所以d["a"]为3。
5.下列哪个选项可以作为字典的键( )。
A. [1,2]
B. (1,2)
C. {1,2}
D. {"x":1}
【答案】B
【解析】
字典的键必须是不可变(可哈希)类型。
A:列表可变,不可哈希。
B:元组不可变,可哈希。
C:集合可变,不可哈希。
D:字典可变,不可哈希。
6.对于字典 d = {1:2, 3:4},表达式 d[5] 的结果是( )。
A. None
B. 5
C. 抛出 KeyError
D. 抛出 TypeError
【答案】C
【解析】使用方括号访问不存在的键会引发KeyError。
7.执行 d = {1:2, 3:4}; d[5] = 6; d[3] = 7; print(d) 的输出是( )。
A. {1:2, 3:7, 5:6}
B. {1:2, 3:4, 5:6}
C. {3:7, 5:6}
D. {3:4, 5:6}
【答案】A
【解析】
初始 {1:2, 3:4}
d[5]=6 添加新键值对5:6
d[3]=7 修改键3的值为7
最终 {1:2, 3:7, 5:6}
8.下列哪个操作可以删除字典 d 中键为 "name" 的键值对( )。
A. d.del("name")
B. d.remove("name")
C. del d["name"]
D. d.popitem("name")
【答案】C
【解析】
del d["name"] 是删除指定键的语法。
popitem() 删除并返回最后一个键值对,不接受参数。
del 是关键字,不是方法。
9.执行 d = {1:2, 3:4}; print(list(d.keys())) 的输出可能是( )。
A. [2,4]
B. [1,3]
C. [(1,2),(3,4)]
D. [2,4]
【答案】B
【解析】d.keys()返回键的视图,转为列表得到[1,3]
10.表达式 {1:2, 3:4}.get(5, 10) 的结果是( )。
A. None
B. 10
C. 5
D. 报错
【答案】B
【解析】get(key, default)若键存在返回对应值,否则返回默认值。键5不存在,返回10
11.执行 d = {1:2, 3:4}; d.setdefault(3, 10); print(d[3]) 的输出是( )。
A. 4
B. 10
C. 3
D. 报错
【答案】A
【解析】setdefault(3,10)键3已存在,返回原值4,不修改字典,因此d[3]仍为4
12.执行 d = {1:2, 3:4}; d.update({3:5, 5:6}); print(d) 的输出是( )。
A. {1:2, 3:5}
B. {1:2, 3:4, 5:6}
C. {1:2, 3:5, 5:6}
D. 报错
【答案】C
【解析】update()将另一个字典的键值对合并,相同键的值被覆盖。键3被改为5,键5新增,结果为 {1:2, 3:5, 5:6}。
13.对于字典 d = {1:2, 3:4, 5:6},表达式 5 in d 的结果是( )。
A. True
B. False
C. 报错
D. None
【答案】A
【解析】in运算符判断键是否存在,5是键,返回True。
14.表达式 (1,2) in {1:2, 3:4}.items() 的结果是( )。
A. False
B. True
C. 报错
D. None
【答案】B
【解析】items()返回键值对组成的元组视图,(1,2)在字典的键值对中,因此返回True。
15.执行 d = {1:2, 3:4}; d.pop(3); print(d) 的输出是( )。
A. {3:4}
B. {1:2, 3:4}
C. {1:2}
D. 报错
【答案】C
【解析】pop(3)删除键3并返回其值,字典剩下{1:2}。
16.执行 d = {1:2, 3:4, 6:5}; d.pop(5, 10); print(d) 的输出是( )。
A. {1:2, 3:4}
B. {1:2, 3:4, 5:10}
C. {1: 2, 3: 4, 6: 5}
D. 报错
【答案】C
【解析】pop(5,10)键5不存在,返回默认值10,但不修改字典。原字典不变,输出 {1:2, 3:4, 6:5}。
17.d={1:2,3:4,5:6};print(sum(d.values())+len(d))的输出是( )。
A. 12
B. 13
C. 14
D. 15
【答案】D
【解析】
d.values() 为 [2,4,6],和 12
len(d) 为 3
总和 12+3=15
18.执行 d = {1:2, 3:4, 5:6}; del d[3]; len(d) 的结果是( )。
A. 2
B. 3
C. 4
D. 报错
【答案】A
【解析】删除键3后,字典剩两个键值对,长度为2。
19.下列哪个选项可以判断字典 d 中是否包含键 "age"( )。
A. "age" in d.values()
B. "age" in d
C. "age" in d.items()
D. d.contains("age")
【答案】B
【解析】
in d 直接判断键是否存在。
A检查值,C检查键值对,D无此方法。
20.执行 d = {"a":1, "b":2}; d.clear(); print(d) 的输出是( )
A. {}
B. None
C. set()
D. 报错
【答案】A
【解析】clear()清空字典,输出空字典{}。
2、 填空题(本大题共10小题,每题2分,共20分)
1.下面代码的运行结果________。
d={1:2}
d[3]=4
d[1]=5
print(d)
【答案】{1: 5, 3: 4}
【解析】
初始 {1:2}
添加键3:4
修改键1的值为5
最终字典包含两个键值对,顺序可能为插入顺序。
2.下面代码的运行结果________。
d={1:[3,4],2:"hello python"}
d[1][0]=5
print(sum(d[1])+len(d[2][8:1:-2]))
【答案】13
【解析】
d[1]是列表 [3,4],修改索引0为5,变为 [5,4],和 9
d[2] 是字符串 "hello python",切片[8:1:-2]:从索引8('p')向左到索引2(不含),步长-2,取字符 'p', 'o', 'l', 'e'?实际计算:索引8='p',6='o',4='l',2='e',得到字符串 "pole",长度 4
9+4=13
3.下面代码的运行结果________。
d = {"a": 1, "b": 2}
print(d.get("c", 0) + d.pop("a"))
【答案】1
【解析】
d.get("c",0) 返回 0
d.pop("a") 删除键"a"并返回 1
0+1=1
4.下面代码的运行结果________。
d = {"x": 10, "y": 20, "z": 30}
total = sum(d.values())
print(total)
【答案】60
【解析】d.values()返回[10,20,30],和为60。
5.下面代码的运行结果________。
d = {"name": "Alice", "age": 25}
result = list(d.items())[0][1]
print(result)
【答案】"Alice"
【解析】d.items()返回[('name','Alice'), ('age',25)],转为列表后第一个元素是('name','Alice'),索引1取第二个值 'Alice'。
6.下面代码的运行结果________。
d = {"a": 1, "b": 2}
d.update({"b": 3, "c": 4})
d.setdefault("a", 10)
d.setdefault("d", 5)
print(d)
【答案】{'a': 1, 'b': 3, 'c': 4, 'd': 5}
【解析】
update 后:{'a':1, 'b':3, 'c':4}
setdefault("a",10) 键存在,返回1,不修改
setdefault("d",5) 键不存在,添加 'd':5
7.下面代码的运行结果________。
d = {1: "one", 2: "two", 3: "three"}
k_list = list(d.keys())
k_list.sort()
print(k_list)
【答案】[1, 2, 3]
【解析】keys()返回[1,2,3],排序后不变。
8.下面代码的运行结果________。
d = {1: 10, 2: 20, 3: 30}
v = d.pop(2, 100)
print(v, len(d))
【答案】20 2
【解析】
pop(2) 删除键2并返回20,字典剩 {1:10,3:30},长度2
输出 20 2
9.若要在字典中删除键 "x" 并返回其对应的值,可以使用 ________ 方法。
d1 = {"a": [1, 2], "b": 3}
d2 = d1.copy()
d2["a"].append(3)
d2["b"] = 5
print(d1)
【答案】{'a': [1, 2, 3], 'b': 3}
【解析】pop(key)删除指定键并返回对应值,若键不存在可设置默认值。
10.使用成员运算符 ________ 可以判断一个键是否存在于字典中。
keys = ["id", "name", "score"]
d = dict.fromkeys(keys, 0)
d["name"] = "张三"
d.update({"score": 95})
print(d)
【答案】{'id': 0, 'name': '张三', 'score': 95}
【解析】
成员运算符in用于判断键是否存在。
代码运行结果为{'id':0, 'name':'张三', 'score':95}。
3、 程序设计题(本大题共4小题,每题10分,共40分)
1.现有字典 students = {"张三":85, "李四":92, "王五":78, "赵六":88},请完成以下操作,并写出每一步后的代码:
① 将“王五”的成绩修改为80。
② 删除“赵六”的记录。
③ 添加新学生“孙七”,成绩为95。
④ 判断“李四”是否在字典中,如果在则输出其成绩,否则输出“不存在”。
【答案】
students = {"张三":85, "李四":92, "王五":78, "赵六":88}
students["王五"] = 80
del students["赵六"]
students["孙七"] = 95
if "李四" in students:
print(students["李四"])
else:
print("不存在")
【解析】
修改:通过键直接赋值
删除:使用 del 语句
添加:通过新键赋值
判断:使用 in 运算符,然后输出值
2.现有字典 d= {"张三":"13812345678", "李四":"13987654321"},请完成以下操作:
①.使用 get() 方法获取“王五”的电话号码,如果不存在则返回“未登记”,并将结果存入变量 tel。
②.使用 setdefault() 方法为“王五”添加电话号码“15000000000”,并将返回的结果赋值给变量 new_tel。
③.输出添加后的字典 d。
【答案】
d= {"张三":"13812345678", "李四":"13987654321"}
tel = d.get("王五", "未登记")
new_tel = d.setdefault("王五", "15000000000")
print(d)
【解析】
get() 获取不存在的键返回默认值
setdefault() 若键不存在则添加并返回新值,若存在则返回原值
最终字典添加了 "王五":"15000000000"
3.现有字典 scores = {"语文":85, "数学":92, "英语":78, "科学":88},请完成以下操作:
① 使用 pop() 方法删除“英语”的成绩,并将删除的值输出。
② 使用 popitem() 方法删除并输出最后一个键值对(Python 3.7+ 中保持插入顺序,最后添加的是“科学”)。
③ 输出删除后剩余的字典。
【答案】
scores = {"语文":85, "数学":92, "英语":78, "科学":88}
print(scores.pop("英语"))
print(scores.popitem())
print(scores)
【解析】
pop(key) 删除指定键并返回值
popitem() 删除并返回最后一个键值对
字典在Python 3.7+ 中保持插入顺序,最后添加的是"科学"
4.现有字典 d1 = {"a":1, "b":2, "c":3},d2 = {"b":4, "d":5}。请完成以下操作:
① 使用 update() 方法将 d2 合并到 d1 中(注意相同键的值会被覆盖)。
② 将 d1 的键列表、值列表、键值对列表分别转换为列表并输出(使用 list() 转换)。
③ 输出 d1 中键 "b" 对应的值。
【答案】
d1 = {"a":1, "b":2, "c":3}
d2 = {"b":4, "d":5}
d1.update(d2)
keys_list = list(d1.keys())
values_list = list(d1.values())
items_list = list(d1.items())
print(keys_list)
print(values_list)
print(items_list)
print(d1["b"])
【解析】
update() 将 d2 的键值对合并到 d1,相同键覆盖
keys(), values(), items() 返回视图,用 list() 转为列表
通过键访问修改后的值
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:安徽省普通高校对口招生专业理论考试《计算机类考纲百套卷》,依据《安徽省普通高校对口招生计算机类专业课考试纲要》编写。每门课程均分三层训练:紧扣考纲 “掌握”“理解” 要求编写考点训练卷;强化知识交叉与场景关联,按考纲专题编专题训练卷;聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第14卷,按《计算机编程基础-Python语言》范围和要求编写。具体内容为:Python字典的定义、创建字典、字典的特性、字典的基本操作、字典的操作函数、成员判断、获取键的列表和字典长度。
安徽省《计算机考纲百套卷》 第14卷
《计算机编程基础-Python语言》
字典 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.下列关于Python字典的描述,正确的是( )。
A. 字典中的键可以是列表
B. 字典中的值必须是不可变类型
C. 字典的键值对是有序的
D. 字典中的键必须唯一
2.创建空字典的正确方式是( )。
A. {}
B. set()
C. {[]}
D. {()}
3.执行 dict([("a",2),("b",4)]) 后,d的值是( )。
A. {('a': 2),('b': 4)}
B. [("a",2),("b",4)]
C. {"a",2,"b",4}
D. {'a': 2, 'b': 4}
4.执行 d = {"a":1, "b":2, "a":3}; print(d["a"]) 的输出是( )。
A. 1
B. 2
C. 3
D. 报错
5.下列哪个选项可以作为字典的键( )。
A. [1,2]
B. (1,2)
C. {1,2}
D. {"x":1}
6.对于字典 d = {1:2, 3:4},表达式 d[5] 的结果是( )。
A. None
B. 5
C. 抛出 KeyError
D. 抛出 TypeError
7.执行 d = {1:2, 3:4}; d[5] = 6; d[3] = 7; print(d) 的输出是( )。
A. {1:2, 3:7, 5:6}
B. {1:2, 3:4, 5:6}
C. {3:7, 5:6}
D. {3:4, 5:6}
8.下列哪个操作可以删除字典 d 中键为 "name" 的键值对( )。
A. d.del("name")
B. d.remove("name")
C. del d["name"]
D. d.popitem("name")
9.执行 d = {1:2, 3:4}; print(list(d.keys())) 的输出可能是( )。
A. [2,4]
B. [1,3]
C. [(1,2),(3,4)]
D. [2,4]
10.表达式 {1:2, 3:4}.get(5, 10) 的结果是( )。
A. None
B. 10
C. 5
D. 报错
11.执行 d = {1:2, 3:4}; d.setdefault(3, 10); print(d[3]) 的输出是( )。
A. 4
B. 10
C. 3
D. 报错
12.执行 d = {1:2, 3:4}; d.update({3:5, 5:6}); print(d) 的输出是( )。
A. {1:2, 3:5}
B. {1:2, 3:4, 5:6}
C. {1:2, 3:5, 5:6}
D. 报错
13.对于字典 d = {1:2, 3:4, 5:6},表达式 5 in d 的结果是( )。
A. True
B. False
C. 报错
D. None
14.表达式 (1,2) in {1:2, 3:4}.items() 的结果是( )。
A. False
B. True
C. 报错
D. None
15.执行 d = {1:2, 3:4}; d.pop(3); print(d) 的输出是( )。
A. {3:4}
B. {1:2, 3:4}
C. {1:2}
D. 报错
16.执行 d = {1:2, 3:4, 6:5}; d.pop(5, 10); print(d) 的输出是( )。
A. {1:2, 3:4}
B. {1:2, 3:4, 5:10}
C. {1: 2, 3: 4, 6: 5}
D. 报错
17.d={1:2,3:4,5:6};print(sum(d.values())+len(d))的输出是( )。
A. 12
B. 13
C. 14
D. 15
18.执行 d = {1:2, 3:4, 5:6}; del d[3]; len(d) 的结果是( )。
A. 2
B. 3
C. 4
D. 报错
19.下列哪个选项可以判断字典 d 中是否包含键 "age"( )。
A. "age" in d.values()
B. "age" in d
C. "age" in d.items()
D. d.contains("age")
20.执行 d = {"a":1, "b":2}; d.clear(); print(d) 的输出是( )
A. {}
B. None
C. set()
D. 报错
2、 填空题(本大题共10小题,每题2分,共20分)
1.下面代码的运行结果________。
d={1:2}
d[3]=4
d[1]=5
print(d)
2.下面代码的运行结果________。
d={1:[3,4],2:"hello python"}
d[1][0]=5
print(sum(d[1])+len(d[2][8:1:-2]))
3.下面代码的运行结果________。
d = {"a": 1, "b": 2}
print(d.get("c", 0) + d.pop("a"))
4.下面代码的运行结果________。
d = {"x": 10, "y": 20, "z": 30}
total = sum(d.values())
print(total)
5.下面代码的运行结果________。
d = {"name": "Alice", "age": 25}
result = list(d.items())[0][1]
print(result)
6.下面代码的运行结果________。
d = {"a": 1, "b": 2}
d.update({"b": 3, "c": 4})
d.setdefault("a", 10)
d.setdefault("d", 5)
print(d)
7.下面代码的运行结果________。
d = {1: "one", 2: "two", 3: "three"}
k_list = list(d.keys())
k_list.sort()
print(k_list)
8.下面代码的运行结果________。
d = {1: 10, 2: 20, 3: 30}
v = d.pop(2, 100)
print(v, len(d))
9.若要在字典中删除键 "x" 并返回其对应的值,可以使用 ________ 方法。
d1 = {"a": [1, 2], "b": 3}
d2 = d1.copy()
d2["a"].append(3)
d2["b"] = 5
print(d1)
10.使用成员运算符 ________ 可以判断一个键是否存在于字典中。
keys = ["id", "name", "score"]
d = dict.fromkeys(keys, 0)
d["name"] = "张三"
d.update({"score": 95})
print(d)
3、 程序设计题(本大题共4小题,每题10分,共40分)
1.现有字典 students = {"张三":85, "李四":92, "王五":78, "赵六":88},请完成以下操作,并写出每一步后的代码:
① 将“王五”的成绩修改为80。
② 删除“赵六”的记录。
③ 添加新学生“孙七”,成绩为95。
④ 判断“李四”是否在字典中,如果在则输出其成绩,否则输出“不存在”。
2.现有字典 d= {"张三":"13812345678", "李四":"13987654321"},请完成以下操作:
①.使用 get() 方法获取“王五”的电话号码,如果不存在则返回“未登记”,并将结果存入变量 tel。
②.使用 setdefault() 方法为“王五”添加电话号码“15000000000”,并将返回的结果赋值给变量 new_tel。
③.输出添加后的字典 d。
3.现有字典 scores = {"语文":85, "数学":92, "英语":78, "科学":88},请完成以下操作:
① 使用 pop() 方法删除“英语”的成绩,并将删除的值输出。
② 使用 popitem() 方法删除并输出最后一个键值对(Python 3.7+ 中保持插入顺序,最后添加的是“科学”)。
③ 输出删除后剩余的字典。
4.现有字典 d1 = {"a":1, "b":2, "c":3},d2 = {"b":4, "d":5}。请完成以下操作:
① 使用 update() 方法将 d2 合并到 d1 中(注意相同键的值会被覆盖)。
② 将 d1 的键列表、值列表、键值对列表分别转换为列表并输出(使用 list() 转换)。
③ 输出 d1 中键 "b" 对应的值。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$