【202609】Python三级

从PDF导入:【202609】Python三级

Python 120分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境(IDE)编写并调试方阵的控制程序。下列关于 IDE 功能的描述,错误的是( )。
A. 可以提供代码自动补全,提高编程效率
B. 可以提供辅助信息,帮助排查程序逻辑错误
C. 可以直接控制机器人电机转动
D. 支持语法高亮,使代码更易阅读
第2题 中级 2.0分 单选
计算机 CPU 中的高速缓冲存储器(Cache)主要为提升系统性能而设计。下列关于 Cache 的说法中正确的是( )。
A. Cache 的容量比主存大,速度比主存快
B. Cache 通常用于暂存 CPU 频繁访问的数据
C. Cache 中的数据断电后不会丢失,属于非易失性存储器
D. Cache 的访问速度比 CPU 寄存器还要快
第3题 中级 2.0分 单选
8 位二进制原码能表示的最小和最大整数分别是?( )
A. -128 128
B. -128 127
C. -127 128
D. -127 127
第4题 中级 2.0分 单选
在 Python 中,表达式 -0b1111 的十进制值是?( )
A. 15
B. -15
C. -1
D. -7
第5题 中级 2.0分 单选
在 Python 中,表达式 ~5+1 的结果是?( )
A. -5
B. 6
C. -6
D. 4
第6题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?( )

A. ['a', 'c', 'e']
B. ['b', 'd', 'f']
C. ['a', 'c', 'e', 'b', 'd', 'f']
D. ['a', 'b', 'c', 'd', 'e', 'f']
第7题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?( )

A. 1
B. 2
C. 3
D. 5
第8题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?( )

A. 20
B. [20, 30, 40]
C. (20, 30, 40)
D. 上述代码执行报错
第9题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?( )

A. True True
B. True False
C. False True
D. False False
第10题 中级 2.0分 单选
执行下面 Python 代码,输入 1a2b3c4,输出的结果是?( )

A. 0
B. 1
C. 2
D. 3
第11题 中级 2.0分 单选
在 Python 中,表达式 {x % 3 for x in range(6)} 的结果是?( )
A. {0, 1, 2, 3}
B. {0, 1, 2}
C. {0, 1}
D. {3}
第12题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?( )

A. (1, 2, 3)
B. (1, 2, 3, 4)
C. [1, 2, 3, 4]
D. 代码会报错,因为元组不可修改
第13题 中级 2.0分 单选
笔记本 5 元/本,笔 3 元/支,橡皮 1 元/个,用 100 元买 50 件文具。以下程序枚举所有购买方案,横线处应填写的代码是( )。

A. notebook + pen + eraser == 50 and notebook5 + pen3 + eraser*1 == 100
B. notebook + pen + eraser == 50
C. notebook5 + pen3 + eraser*1 == 100
D. notebook5 + pen3 + eraser*1 <= 100
第14题 中级 2.0分 单选
以下 Python 代码的功能是?( )

A. 找出字符串中出现次数最多的单词
B. 找出字符串中长度最大的单词,若有多个则全部输出
C. 找出字符串中最后一个出现的长度最大的单词
D. 找出字符串中第一个出现的长度最大的单词
第15题 中级 2.0分 单选
学校举行编程比赛,共有 M 个班级参加,总计 N 名学生提交了作品。每份作品有一个班级编号(1 到 M)和得分。现需统计每个班级的最高分,并计算所有班级最高分的总和。分数为非负数。以下程序试图实现此功能,横线处应填写的代码是?( )

A. ① if score > max_score[cls]: ② total = sum(max_score[0:M])
B. ① if score < max_score[cls]: ② total = sum(max_score[1:])
C. ① if score > max_score[cls]: ② total = sum(max_score[1:])
D. ① if score >= max_score[cls]: ② total = sum(scores)
第16题 中级 2.0分 判断
Python 程序执行 input() 函数时通常是使用键盘等输入设备来输入某个变量的值。
T. 正确
F. 错误
第17题 中级 2.0分 判断
执行下面 Python 代码后,输出的结果是 C3。

T. 正确
F. 错误
第18题 中级 2.0分 判断
对于任意整数 x,x ^ (~x) 的结果恒为 -1。
T. 正确
F. 错误
第19题 中级 2.0分 判断
下列程序用于输出 1 至 20 中,2 和 3 的共同倍数。

T. 正确
F. 错误
第20题 中级 2.0分 判断
执行下面两段 Python 代码后,输出结果是相同的。

第一段:
第二段:

T. 正确
F. 错误
第21题 中级 2.0分 判断
执行下面 Python 代码后,输出的结果是 10。

T. 正确
F. 错误
第22题 中级 2.0分 判断
字典的键可以是列表,例如 {[1,2]: 'a'} 在 Python 中不会引发错误。
T. 正确
F. 错误
第23题 中级 2.0分 判断
执行下面 Python 代码后,输出的结果是 ['a', 'b']。

T. 正确
F. 错误
第24题 中级 2.0分 判断
执行下面 Python 代码后,输出的结果是 False。

T. 正确
F. 错误
第25题 中级 2.0分 判断
执行下面 Python 代码后,输出的结果是 {'x': 1, 'y': 2, 'z': None}。

T. 正确
F. 错误
第26题 中级 25.0分 编程
公共二进制位

时间限制:1.0 s
内存限制:512.0 MB
题目描述
小红有 n 个非负整数 a₁, a₂, …, aₙ。她将每个整数转换为二进制后,想知道有多少个二进制位在所有整数中均为 1。
二进制位从右向左编号为 0, 1, 2, …。若某个整数的二进制表示中没有第 k 位,则认为它的第 k 位为 0。
请你求出满足条件的二进制位数量。

【输入格式】
第一行一个整数 n,表示整数的个数。
第二行 n 个非负整数 a₁, a₂, …, aₙ。
【输出格式】
输出一个整数,表示所有整数的二进制表示中均为 1 的二进制位数量。
输入样例 1:
<img src="/static/uploads/images/0cc4766731ef.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
输出样例 1:
2
样例解释 1:
三个整数的二进制表示分别为 (1101)₂、(0111)₂ 和 (1111)₂。其中第 0 位和第 2 位均为 1,因此答案为 2。

数据范围
2 ≤ n ≤ 20000,0 ≤ aᵢ ≤ 10⁹。
第27题 中级 25.0分 编程
分割字符串

时间限制:1.0 s
内存限制:512.0 MB
题目描述
小明拿到了一段字符串文本,小明希望用下面的规则分割这个字符串:
小明从左到右扫描字符串,遇到第一个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这个空格);
对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续两个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这个空格);
对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续三个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这个空格);
以此类推,小明每分割一次,下一次分割就需要更长的连续空格;直到字符串无法再次分割。
最后输出每次分割的左侧的字符串,以及最后一次分割的右侧字符串。
如果字符串完全无法进行任何一次分割,直接输出其本身。

【输入格式】
输入一行,一个字符串。
【输出格式】
输出若干行,每行为分割后的一个字符串,注意依次输出:
第一次分割左侧的字符串,第二次分割左侧的字符串,…,最后一次分割左侧的字符串,最后一次分割右侧的字符串。
输入样例 1:<img src="/static/uploads/images/aaf6ebe9b55f.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
输出样例 1:<img src="/static/uploads/images/f15bae20260d.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
样例解释 1:
第一次分割将字符串分割为 sdfsd 和 55 55 99312;
第二次分割将字符串分割为 55 55 和 99312。
对于第二次分割,注意 55 和 55 之间虽然有空格,但是第二次分割需要连续两个空格才行。
另外,55 55 和 99312 之间有三个空格,第二次分割只需要两个,所以会分割到 55 55 和 99312,也就是右侧会留下一个空格;因为只留下了一个空格,所以不再满足第三次分割要求。

输入样例 2:
输出样例 2:<img src="/static/uploads/images/f17eaf528106.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
样例解释 2:<img src="/static/uploads/images/fc2603ee5a4b.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
第一次分割将字符串分割为 AbCd 和 999;
第二次分割将字符串分割为字符串和 999。
由于 AbCd 和 999 之间有三个空格,第一次分割消耗掉一个,因此还能进行第二次分割,这个时候会分割出空字符串,因此输出中会输出一个空行(不能省略)。

数据范围
字符串长度不超过 1000,字符串中只包含大写字母、小写字母、数字,或空格,且输入字符串不会以空格结尾。
特别强调:输入仅一行,但可能包含若干空格。
💬