admin 管理员组文章数量: 1086019
2024年12月23日发(作者:jetbrains中文叫什么)
2023年3月青少年软件编程Python等级考试试卷三级(含答案和解析)
分数:100 题数:38
一、单选题(共25题,共50分)
1.十进制数111转换成二进制数是?(D)
A. 111
B. 1111011
C. 101111
D. 1101111
解析:十进制转二进制,采用除二倒取余数,直到商为0为止。
2.某班有36人,王老师想给每位同学分配一个二进制的学.号,那么该学.号至
少需要多少位?(C)
A. 36
B. 5
C. 6
D. 7
解析:1个二进制位可以编制2个号码,即0、1,2个二进制位可以编制2×2
个号码,即00、01、10、11, 3个二进制位可以编制2×2×2个号码,即000、
001、010、011、100、101、110、111,依次类推,5个2相乘可以得到32个号
码,不够用,故需要6位。
3.数据的存储形式多种多样,如s1=[[“李亮”,“98”],[“王宁宁”,“95”],
[“莫晓珍“,“88”]],s2=[“李亮”,“98”,“王宁宁”,“95”,“莫晓珍“,“88”],
有关s1与s2下列说法正确的是?(A)
A. 都是用列表实现的
B. s1是一维列表
C. s2是二维列表
D. 要取出“王宁宁”同学的成绩,方法是一样的,用s1[4]或s2[4]
解析:Python中列表用[ ]表示。s1是二维列表,s2是一维列表。S[1]中用s1[1][1]
取出“王宁宁”同学的成绩,s2中可用s2[3]取出“王宁宁”同学的成绩。
4. a=["跳绳","跳高","跳远","铅球"]
fs=open("","w")
(" ".join(a)+'n')
()
关于上述代码,下列说法正确的是?(B)
A. 若””文件不存在,则程序出错
B. 程序的最后结果是:跳绳 跳高 跳远 铅球
C. 程序中的()代码可有可无
D. “w”参数表示不能修改原csv文件
解析:程序段的功能是表示将a列表中各项元素用空格符进行连接,并写入到
文件中,“w”表示可写入。若文件不存在,可自动创建。
5.现有水果价格数据jg=[[‘草莓’,15],[‘梨子’,9],[‘苹果’,10],[‘桔
子’,4]],需要将其打印成二维表格数据形式,程序代码如下:
jg=[[‘草莓’,15],[‘梨子’,9],[‘苹果’,10],[‘桔子’,4]]
for row in range(len(jg)):
for col in range(len(jg[row])):
print(____________,”t”)
上述划线处代码是?(D)
A. jg[row]
B. jg[col]
C. jg[col][row]
D. jg[row][col]
解析:外循环遍历每个子列表的索引,内循环遍历子列表中每项元素的索引。
6.运行下列程序段:
try:
a=int(input("请输入被除数:"))
b=int(input("请输入除数:"))
x=a/b
print("商是:",x)
except:
print("输入有错!请检查。")
else:
print("正确!")
finally:
print("程序结束。")
若输入a为8,b为4,则输出结果是?(D)
A.
商是:2
正确!
B.
商是:2
正确!
程序结束。
C.
商是:2.0
程序结束。
D.
商是:2.0
正确!
程序结束。
解析:当try语句块正确时,执行try代码块结束,将执行else语句块,最后
执行finally语句块。当输入有误,则执行except语句块和finally语句块。
7.已知A的ASCII码值为65,
s=”China”
k=abs(-4.8)
则表达式ord(min(s))+k的值是?(A)
A. 71.8
B. 63
C. 61
D. 62
解析:min()取最小值,ord()求得对应字符的ASCII码值,abs()则为绝对值函
数。C的ASCII码值为67,67+4.8=71.8 。
8. divmod(8,5)的结果是?(C)
A. 1
B. 3
C. (1,3)
D. [1,3]
解析:divmod()函数返回的是商和余数组成的元组,而不是列表,也不是单个的
商或余数。
9.若有代码:
name=[“李明”,“王宁”,“朱倩”]
for a,i in enumerate(name):
print(a,i)
则显示的结果是?(A)
A.
0 李明
1 王宁
2 朱倩
B.
李明
王宁
朱倩
C. 李明,王宁,朱倩
D.
1 李明
2 王宁
3 朱倩
解析:enumerate()函数用于将序列对象组合为索引与数据元素的元组。程序中
的a和i分别遍历元组中的索引和数据元素。索引从0开始。
10.有关于print()语句的运用,下列输出结果有误的是?(B)
A. print(“Happy!”)
B. print(李明)
C. print('Happy!’)
D. print(2023)
解析:print()是输出语句。Python中字符串带单引号、双引号或三引号,变量
名不带引号,“李明”这个变量并没有进行赋值,故直接输出将发生错误。2023
是数值类型,可直接输出。
11.若s=”yneatr”,则len(s)的值为?(C)
A. 8
B. 4
C. 6
D. 5
解析:len()表示求字符串长度,n和t是转义字符,分别占一个字符长度。其
它各为一个长度。
12.b=[1,2,3,4,5],则sum(b)的值是?(C)
A. 10
B. 14
C. 15
D. 12
解析:sum()函数表示求和。
13.某算法的流程图如图所示,则该流程图的结构属于?(D)
A. 顺序结构
B. 分支结构
C. 树形结构
D. 循环结构
解析:算法的基本结构有顺序结构、分支结构(也叫选择结构)、循环结构。循
环结构的特点是在满足某一条件的情况下,重复进行某些操作,直到条件不满足。
14.有如下代码:
a=[25,37,49,64,73,75,85,91]
t=i=0
j=len(a)-1
key=int(input())
while i<=j:
m=(i+j)//2
if a[m]==key:
break
elif a[m]>key:
j=m-1
else:
i=m+1
t+=1
print(t)
若输入的key值是73,则程序输出的结果是?(C)
A. 5
B. 1
C. 2
D. 3
解析:这是一道对分查找算法题。主要功能是在列表a中查找数字73,输出查
找次数。根据i,j的初始值,m=(0+7)//2=3,第一次对分访问的数据是64,由于
64<73,第二次查找范围是i=4,j=7不变,此时t=1;第二次对分访问的是5号索
引位上的75,由于75>73,第三次查找的范围是i=4不变,j=4,此时t=2;第三次
对分访问的是4号索引位的73,由于73==73,执行break中断整个循环,故t+=1
不执行,最后t的值为2。
函数可以将十进制数转换成十六进制数。在Python交互式编程环境下,
执行语句hex(2023)后,显示的运行结果是?(C)
A. "0x7e3"
B. "0x7e6"
C. "0x7e7"
D. "0x7e8"
解析:考查将十进制转换成十六进制数的计算方法。
() 函数用于将一个字符串或数字转换为整型。在Python交互式编程环境
下执行以下语句,会出现错误的一项是?(C)
A. int()
B. int(1.0)
C. int(0x20,16)
D. int('2023',8)
解析:int()函数用于将一个字符串或者数字转换为整数。
17.一维数据可以存储在CSV格式文件中,下列描述正确的是?(D)
A. 必须采用逗号分隔数据元素
B. 必须采用空格来分隔数据元素
C. 必须采用分号分隔数据元素
D. 允许采用特殊字符来分隔数据元素
解析:CSV格式文件允许采用特殊字符来分隔数据元素。
18.如果需要使用open函数以可读可写的方式打开一个存储二维数据的CSV文件,
则open函数的文件打开模式不能设置成?(A)
A. rw
B. r+
C. w+
D. a+
解析:open函数没有rw打开文件的模式。
19.在finally异常处理机制中,如果发生异常则完全
不会被执行的代码块是?(C)
A. try代码块
B. except代码块
C. else代码块
D. finally代码块
解析:Python异常处理机制中,如果发生异常则完全不会被执行的代码块是else
代码块。
20.下列数据对象中,不能使用len()函数获取数据对象长度的是?(A)
A. 2023
B. [2, 0, 2, 3]
C. ["Go", "China!"]
D. ("Go", "China!")
解析:len函数用于返回字符串、列表、字典、元组等的长度。
21.在Python交互式编程环境下,输入print(list(range(0,5,2)))语句,执行
的结果是?(D)
A. 存在语法错误,不能执行
B. [0,1]
C. [0, 1,2, 3,4,5]
D. [0, 2, 4]
解析:重点考查range函数的用法。
22.在交互式编程环境下,执行all([0,1,2,3])语句后,返回的值是?(B)
A. True
B. False
C. 1
D. 4
解析:all()函数用于判断给定的迭代参数iterable中的所有元素是否都为TRUE。
如果是,返回True;否则返回False。在Python中,非零数值被认为是True,
而零(0)被认为是False。因此,列表[0,1,2,3]中包含数字0,所以all([0,1,2,3])
的结果会是False 。
23.在交互式编程环境下,输入float("1")语句,执行的结果是?(B)
A. 1
B. 1.0
C. '1'
D. 传入参数错误,不能执行
解析:在Python中,float()函数用于将参数转换为浮点数。如果参数是一个字
符串,那么这个字符串将被转换为一个浮点数。在这个例子中,字符串"1"被转
换为了浮点数1.0。所以,执行float("1")的结果是1.0。
24.在交互式编程环境下,输入max([(1,2),(2,3),(3,4),(2,6)])语句,执行的
结果是?(B)
A. 6
B. (3,4)
C. (2,6)
D. (3,6)
解析:max()函数在Python中用于找出给定参数的最大值,当参数是可迭代对象
(如列表、元组)时,它会返回可迭代对象中的最大元素。在比较元组时,max()
会按照元组中元素的顺序进行比较,先比较第一个元素,如果相同则比较第二个
元素,依此类推。
25.“鸡兔同笼”是一个古老的数学问题,可以应用枚举法求解,也可以利用二
元一次方程进行求解。以下是使用计算机解决“鸡兔同笼”问题的几个步骤:
①编写Python程序,用计算机进行处理。
②设计“鸡兔同笼”求解算法。
③验证算法的功能和性能。
④分析问题,确定解题任务。
使用计算机解决“鸡兔同笼”问题,正确的步骤是?(D)
A. ②④①③
B. ④①②③
C. ④②③①
D. ④②①③
解析:使用计算机解决问题的一般过程是分析问题、设计算法、编写程序、验证
算法等。
二、判断题(共10题,共20分)
26.若name为若干元素的列表对象,file为CSV文件,则
(‘,’.join(name)+’n’)语句可确保列表中每个写入CSV文件的
数据,在表格软件打开时作为一个单元格存在。(正确)
解析:列表中的数据元素以‘,’合并成字符串,最后在末位加换行符。
27.当程序发生异常时,我们可以用try…except…语句进行异常处理。但每个
try模块只能有一个except语句块。(错误)
解析:一个try语句模块可以设定多个except语句模块。
28. float()函数可将整数转换为浮点类型数据,但不能将字符串中的数字转
换为浮点类型数据。(错误)
解析:内建函数float()用于将整数和字符串数字转换为浮点数。
29.在执行语句x=input()的过程中,若键盘输入23并按下回车键,则x的值就
被赋值为整数23。(错误)
解析:input()用于接收键盘输入数据,默认为字符串类型,即键盘输入数字
23,最终得到的是字符串“23”,若要得到整数23,需用int()进行转换。
语言中,bin()函数可以输出二进制数值,也可以传入参数用来设置
输出为十六进制数值。(错误)
解析:bin() 返回一个整数或者长整数的二进制表示。
31.任何二维数据都可以用二维列表来表示。(正确)
解析:二维数据可以用二维列表来表示。
32.执行语句wq=[[0]*19]*19可以创建一个19行及19列的二维表。(正确)
解析:执行[[0]*19]*19将创建19行X19列的空二维表。
33. bool()函数用于将给定参数或表达式转换为布尔类型。语句bool(-1)返回
的是False值。(错误)
解析:bool(-1)返回的是True值。
34. enumerate()函数用于将列表、元组或字符串等可遍历的数据对象组合为一
个索引序列。(正确)
解析:enumerate()函数是Python中的一个内置函数,它的主要作用是将一个可
迭代的对象(如列表、元组、字符串等)组合成一个索引序列。
35.十六进制9E的二进制数是8位。(正确)
解析:十六进制转二进制,每1位十六进制数转换为4位二进制数,高位最左边
的0可省略。E->1110,9->1001.共8位。
三、编程题(共3题,共30分)
36.百钱买百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题,问
题的原文是:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡
翁、鸡母、鸡雏各几何?这个问题用现代文描述起来就是:公鸡5文钱1只,母
鸡3文钱1只,小鸡3只1文钱。如果用100文钱买100只鸡,那么公鸡、母鸡
和小鸡各应该买多少只呢?请完成下面程序中空白处的语句,实现对问题的求解,
找出所有符合题目要求的买鸡方案,并输出。
#设cock、hen、chicken分别为公鸡、母鸡和小鸡的数量,num为符合题目要求
的方案数目。
num=0
for cock in range(1,21):
for hen in range(1,34):
for chicken in ① :
if ② == 100 and cock*5 + hen*3 + chicken/3
== ③ :
num = ④
print(f'第 {num} 种方案是:公鸡{cock}只,母鸡{hen}只,
小鸡{chicken}只') 。
参考程序:
# 设cock、hen、chicken分别为公鸡、母鸡和小鸡的数量,num为符合题目要
求的方案数目。
num=0
for cock in range(1,21):
for hen in range(1,34):
for chicken in range(1,101):
if cock+hen+chicken == 100 and cock*5 + hen*3 + chicken/3 ==
100:
num = num +1
print(f'第 {num} 种方案是:公鸡{cock}只,母鸡{hen}只,
小鸡{chicken}只') 。
评分标准:
(1)range(1,101)或等效答案;(3分)。
(2)cock+hen+chicken或等效答案;(3分)。
(3)100或等效答案;(2分)。
(4)num +1或等效答案。(2分)。
37.妙妙学校举行了知识竞赛,有一、二、三3个班分别派出最优秀的5名代表
参加此次竞赛。这15名代表的成绩存放于””文件中,现在妙妙读取
了其中的数据,数据内容如图所示:
下列代码实现了读取竞赛分数信息,并输出各班平均分的情况,请你补全代码。
import csv
with open("/data/",encoding="utf-8")as f:
rows=list( ① (f))
sum=[0,0,0]
for row in rows[1:]:
if int(row[0])==1:
sum[0]+=int(row[2])
elif int( ② )==2:
sum[1]+=int(row[2])
else:
sum[2]+=int(row[2])
for i in range(1,4):
print(str(i)+"班的平均分为:",round( ③
/5,2)) 。
参考程序:
import csv
with open("/data/",encoding="utf-8")as f:
rows=list((f))
sum=[0,0,0]
for row in rows[1:]:
if int(row[0])==1:
sum[0]+=int(row[2])
elif int(row[0])==2:
sum[1]+=int(row[2])
else:
sum[2]+=int(row[2])
for i in range(1,4):
print(str(i)+"班的平均分为:",round(sum[i-1])/5,2)) 。
本题主要考查文件的读取操作和计算思维。第一空为利用csv模块的reader对
象读取文件内容;第二空属于分支结构的第二个分支,由第一个分支可知这里为
讨论班级是否是2班,因此仍然是读取row[0]的数据;第三空是计算每个班的
平均分,班级和循环变量i有关,sum中对应班级的索引和循环变量i相差1,
故为sum[i-1]。
评分标准:
(1);(1分)。
(2)row[0];(1分)。
(3)sum[i-1]。(2分)。
38.若要生成一个由若干小写字母组成的互不重复的随机数组,已知小写字母的
ASCII码值为97~122整数范围,并将其进行从小到大输出,如图所示,请将相
关程序补充完整。
import random # random是随机数模块。
n=int(input("请输入元素个数(不超过26):"))
a=[]
# 产生不重复的随机数组。
for i in range(n):
x=t(97,122) # 产生97-122之间的随机整数。
while chr(x) in a:
x=t(97,122)
( ① )
print(a)
# 将各个元素进行排序输出。
for i in range(n-1):
k=i
for j in range( ② ,n):
if a[k]>a[j]:
k= ③
if i!=k:
a[i],a[k]= ④
print("该随机数组从小到大排列为:",a) 。
参考程序:
import random # random是随机数模块。
n=int(input("请输入元素个数(不超过26):"))
a=[]
# 产生不重复的随机数组。
for i in range(n):
x=t(97,122) # 产生97-122之间的随机整数。
while chr(x) in a:
x=t(97,122)
(chr(x))
print(a)
# 将各个元素进行排序输出。
for i in range(n-1):
k=i
for j in range(i+1,n):
if a[k]>a[j]:
k=j
if i!=k:
a[i],a[k]=a[k],a[i]
print("该随机数组从小到大排列为:",a) 。
本题主要考查选择排序。程序的第一部分是产生不重复的字母组成的数组。由于
x是97~122中的随机整数,故追加到a列表中的元素应在x的基础上将其转化
为字符,故①空填写chr(x);在选择排序中,外循环控制排序趟数,内循环控制
排序次数,不难看出,i的取值范围为0~n-2,因此j每次从i的下一个位置开
始至最后,故②处填写i+1;根据选择排序的原理,在j位置上找到比k位置更
小的元素,则k移至该位置,故③处填写为j;在某趟排序过程中,当全部元素
比较结束,应在最小元素位置上,需要将其交换到相应的i位置上,故④位置答
案应为a[k],a[i]。
评分标准:
(1)chr(x);(4分)。
(2)i+1;(4分)。
(3)j;(4分)。
(4)a[k],a[i]。(4分)。
版权声明:本文标题:2023年3月青少年软件编程Python等级考试试卷三级真题(含答案和解析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1734976258a1617175.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论