2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(三级)真题
青少年软件编程(Python)等级考试试卷(三级)
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341388
一、单选题(共25题,共50分)
1. 学校进行体育跳远期末考试,每人有三次机会,取最远的一次作为最后成绩,1班的成绩如下,CLASS1=[[‘李明’,150,152,147],[‘王红’,146,143,146],[‘刘岩’,148,152,150],[‘张坤’,156,152,154]],那么输出张坤的最好成绩,下列代码正确的是?( )
A. CLASS1[4][1]
B. CLASS1[4][0]
C. CLASS1[3][1]
D. CLASS1[3][0]
2. 一所小学有六个年级,每个年级有5个班,现用二进制对所有班级进行编码,最少需要几位二进制?( )
A. 4位
B. 5位
C. 6位
D. 7位
3. 以下哪项Python表达式的运行结果是正确?( )
A. int(“1001”,2),结果为9
B. int(“26”,8),结果为21
C. int(“1a”,16),结果为25
D. int(“0x8e”,16),结果为143
4. 有如下Python程序:
c=[‘语文’,‘数学’,‘英语’]
f=open(‘course.csv’,‘w’)
f.write(‘,’.join©+‘\n’)
f.close()
下列说法正确的是?( )
A. 当前程序的功能是将CSV文件输出为列表对象
B. 运行后,程序不报错,也不回应
C. 如果没有.csv文件,则会新建一个.csv文件和.py文件在同一个目录
D. 打开.csv文件是空白的
5. 列表list=[7,9,3,6,2,5]使用选择排序算法,按从小到大的顺序排列,则第二轮排序的结果为?( )
A. 2,9,3,6,7,5
B. 2,3,9,6,7,5
C. 2,3,5,6,7,9
D. 2,3,7,9,6,5
6. 对列表对象a=[3,7,2,5,8,6],用插入排序算法进行升序排序。小明编写了如下代码,请选择代码中横线处的内容?( )
a = [3,7,2,5,8,6]
count=len(a)
for i in range(1,count):
key=a[i]
j=i-1
while j>=0 and a[j]>key:
________
j-=1
a[j+1]=key
print(a)
A. a[j+1]=a[j]
B. a[j]=a[i]
C. a[j-1]=a[j]
D. a[j]=a[j-1]
7. 计算三角形面积,可以采用的算法是?( )
A. 解析算法
B. 枚举算法
C. 排序算法
D. 查找算法
8. 二进制数 11001010 转换为十六进制是?( )
A. 202
B. CA
C. AC
D. A
9. 表达式hex(12)的返回值是?( )
A. ‘0x12’
B. ‘0xc’
C. ‘0b12’
D. ‘0bc’
10. 想要在一个csv文件中写入内容并且不覆盖原来的数据,应该使用什么模式打开文件?( )
A. w
B. r
C. a
D. b
r模式可以读取文件内容;
b模式是以二进制的方式打开文件;
a模式可以写入文件,并且不覆盖原有的文件内容。
综上所述,本题选择C选项。
11. 以下说法正确的选项是?( )
A. Python中列表、元组中的元素数据都不可以重复
B. 如果csv文件存储的是二维数据,每一行则是一维数据
C. read()函数和readlines()函数都可以读取整个文件,但是read()函数读取的文件内容存放在一个列表里,readlines()函数读取的文件内容存放在一个大字符串里
D. writelines()函数和readlines()函数都可以向文件写入多行内容
read()函数读取的文件内容存放在字符串中,readlines()函数读取的文件内容存放在列表中,选项C错误;
readlines()的作用是读取文件内容,选项D错误;
本题选择B选项
12. f=open(‘1.txt’,‘w’)
f.write(‘\n\n’.join([‘桃子’, ‘苹果’, ‘橙子’]))
f.close()
对于以上代码,说法正确的是?( )
A. 执行以上语句后,1.txt中会写入3行,分别是桃子、苹果、橙子
B. 执行以上语句后,1.txt中会写入5行,分别是桃子、空行、苹果、空行、橙子
C. 执行以上语句后,1.txt中会写入6行,分别是空行、桃子、空行、苹果、空行、橙子
D. 执行以上语句后,1.txt中会写入6行,分别是桃子、空行、苹果、空行、橙子、空行
13. 下列程序,当输入0时,运行结果是?( )
try:
x=9
y=int(input())
n=x%y
print(‘余数是’,n)
except:
print(‘错误’)
else:
print(‘正确’)
finally:
print(‘程序结束’)
A. 余数是 0
正确
程序结束
B. 错误
C. 错误
程序结束
D. 程序结束
14. Python表达式divmod(9,-2)的值是?( )
A. (-5, -1)
B. (-5, 1)
C. (5, -1)
D. [-5, -1]
15. 若a=set(‘123456’),b=set(‘567890’),则{‘2’, ‘3’, ‘1’, ‘4’}可能是下列哪个选项的结果?( )
A. a&b
B. a|b
C. a-b
D. a+b
16. 小明编写了一个简易除法计算器,代码如下:
while True:
fn=input(“被除数:”)
if fn==“q”:
break
sn=input(“除数:”)
if sn==“q”:
break
ans=int(fn)/int(sn)
print(ans)
有关这段代码,说法正确的是?( )
A. 分别输入25和5测试程序,能输出结果,说明程序是完美的
B. 若输入的第二个数为0,程序将中断,退出计算
C. 如遇到无效输入,程序可能会发生错误而崩溃
D. 除数为0时,将发生异常,这种异常在Python中无法处理
输入25和5,计算结果是5.0,程序能正常运行,但不能说明程序是完美的,因为没有考虑除数为0的情况,A错误;当输入为’q’时,程序将发生中断,退出计算,B错误;
遇到无效输入(如0)时,ans=int(fn)/int(sn)语句将发生错误崩溃,C正确;Python中提供了try-except语句来处理异常,D错误。
17. 已知x=[67,81,45,38,55,-29,83],那么print(max(x))输出的结果将是?( )
A. 29
B. 81
C. -29
D. 83
18. 下列代码的输出结果是?( )
b=‘天天向上’
print(b2)
A. 天天天天向向上上
B. 天天向上天天向上
C. 天天向上2
D. 天天向上2
19. Python表达式len(str(1234+5678))的结果是?( )
A. 9
B. 5
C. 4
D. 14
20. Python表达式round(24/7)的值是?( )
A. 3.0
B. 3
C. 3.4
D. 3.43
21. Python中关于ord()函数,下列说法正确的是?( )
A. 该函数的功能是将整数转换为字符串
B. 该函数的功能是将ASCII码值转换为相应字符
C. 该函数的功能是将数字字符串转换为整数
D. 该函数的功能是返回字符的ASCII码值
22. 有如下Python程序代码:
a=input(“第一个数”)
b=input(“第二个数”)
print(a+b)
若输入的数据是5和3,那么程序的输出结果是?( )
A. 53
B. 8
C. a+b
D. 5+3
23. 若st=(‘I love China.’,‘Me too.’),那么执行语句list(st)的结果是?( )
A. [‘I love China.’, ‘Me too.’]
B. [‘I’,‘love’,‘China’,‘.’,‘Me’,‘too’,‘.’]
C. [(‘I love China.’,‘Me too.’)]
D. [‘I’,‘l’,‘o’,‘v’,‘e’,‘C’,‘h’,‘i’,‘n’,‘a’,‘.’,‘M’,‘e’,‘t’,‘o’,‘o’,‘.’]
24. 已知A的ASCII码值为65,a的ASCII码值为97,chr(ord(min(‘Bike’))+2)的结果是?( )
A. 68
B. 103
C. ‘D’
D. ‘g’
25. 已知a,b,c,d=map(str,[2,0,2,4]),那么d的值是?( )
A. 2
B. ‘2’
C. 4
D. ‘4’
二、判断题(共10题,共20分)
26. 十进制数转化为二进制,使用除2反向取余法,十进制转化为其他进制,也可以使用相同的方法,只是除数采用其他进制的基本数码个数。( )
27. Python可以处理一维数据、二维数据和多维数据。( )
28. (如图)name.csv文件内容如下,下面程序输出的结果是 ‘Alice’, ‘Ida’, ‘Sam’, ‘Otis’, ‘Gina’ 。( )
with open(‘name.csv’,‘r’) as f:
n=f.read().strip().split(‘,’)
print(n)
29. 下列程序,当输入A时,运行结果是:错误,请输入数字 。( )
try:
x=int(input())
y=int(input())
n=x/y
print(n)
except ValueError:
print(‘错误,请输入数字’)
except ZeroDivisionError:
print(‘错误,除数不能为0’)
except :
print(‘其它错误!’)
30. 若n=[2,3,5,9,12,6],则max(n)+min(n)+sum(n)的值是52。( )
31. Python中bool()函数用于将给定参数转换为布尔类型,参数省略的情况下返回True值。( )
32. Python中若求字符的ASCII码值,可以使用ord()函数,而不是ascii()。( )
33. Python中range(10)表示生成整数序列范围为0~9,并不能生成10。( )
34. 下面三行代码可以正常执行。( )
txt1 = “黑白白白黑白黑白黑白黑白”
a = txt1.count(“白”) - txt1.count(“黑”)
print(a)
35. 二进制111010101转化为十六进制数为1e5。( )
三、编程题(共3题,共30分)
36. 统计身高
某班学生进行了身高测试,身高数据存在文件“shengao.csv”中。数据内容如下图所示。
小明编写了如下程序,读取身高文件中的数据,并计算男生的平均身高(保留两位小数),请你补全代码。
import csv
with open(“/data/ ① “) as f:
rows=list(csv.reader(f))
sum=0
n=0
for row in rows[1:]:
if row[1]==“男”:
②
n=n+1
print(“男生的平均身高是:”, ③ )
评分标准:
(1)shengao.csv 或等效答案;(1分)
(2)sum+=int(row[2]) 或等效答案;(2分)
(3)”%.2f”%(sum/n) 或等效答案。(1分)
37. 课本分配
某学校由于缺乏课本,信息课要两人共读一本课本,数学课要三人共读一本课本,语文课要四人共读一本课本。书的总数是52本。问信息书、数学书、语文书各有多少本?(每门功课至少要有一本书)
for i in range(1, 51):# 信息书
for j in ① : # 数学书
k = ② # 语文书
if i2 == j3 and j3==k4:
print(‘信息书共有%d本,数学书共有%d本。语文书有%d本’ % ( ③ ) )
评分标准:
(1)range(1, 51) 或等效答案;(4分)
(2)52 - i - j 或等效答案;(3分)
(3)i, j, k 或等效答案。(3分)
38. 冒泡排序
下列程序用冒泡排序算法将数列从小到大输出,请你补全代码。
c=[3,6,11,18,9,12,5,2,22,10]
count= ①
for i in range(0, ② ):
for j in range(0, ③ ):
if ④ :
t=c[j]
⑤
c[j+1]=t
print©
评分标准:
(1)len© 或等效答案;(3分)
(2)count-1 或等效答案;(3分)
(3)count-1-i 或等效答案;(3分)
(4)c[j]>c[j+1] 或等效答案;(3分)
(5)c[j]=c[j+1] 或等效答案。(4分)
说明:第(5)空,若将交换两个元素的三行代码私自统一改为“c[j],c[j+1]=c[j+1],c[j]”,得2分。
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341388