青少年软件编程(Python三级)等级考试试卷(2022年6月)

2023年05月26日

选择题

第 1 题 单选题

如下所示的2行代码,最后print()函数打印出来的结果是?( )

c = [['赵大',21,'男','北京'],['钱二',20,'男','西安'],['孙三',18,'女','南京'],['李四',20,'女','杭州']]
print(c[1][3])

A.男

B.北京

C.西安

D.女

第 2 题 单选题

要读取下图“书目.csv”文件的全部内容,小明编写了后面4行代码。请问,红色①处,应该填写哪种打开模式?( )

f = open("书目.csv" , ① )
a = f.read()
print(a)
f.close

A."w"

B."a"

C."r"

D."a+"

第 3 题 单选题

下图所示,有一个名为"书目.csv"的文件。小明针对这个文件编写了5行代码,请问,代码运行到最后打印在屏幕上的结果是?( )

with open('书目.csv', 'r', encoding='utf-8') as f:
	for line in f.readlines():
		a = line.split(",")
		if a[0] == "水浒传" :
			print(a[1])

A.老残游记

B.172

C.55

D.70

第 4 题 单选题

小明编写了下列4行代码,请问,代码运行到最后,屏幕上打印出来的结果是?( )

a = ['a','b','c']
b = [1,2,3]
c = [b,a]
print(c[1][0])

A.1

B.a

C.'1'

D.'a'

第 5 题 单选题

下图左边的“身体素质.csv”文件,要打印成下图右边的效果,每个字段之间相隔一个TAB键的距离。小明编写了如下代码,请选择:代码中横线处的内容?( )

f = open('身体素质.csv', 'r')
a = []
for i in f:
	a.append(i.strip('\n').split(','))
f.close
for x in a:
	line=''
	for y in x:
		line += '{ }    '.format(y)
	print(line)

A.\t

B.\n

C.\a

D.\r

第 6 题 单选题

在Python异常处理结构中,如果程序执行没有遇到异常(错误),不会执行什么关键字后面的语句体?( )

A.try

B.except

C.else

D.finally

第 7 题 单选题

运行下列程序,输出的结果是?( )

try:
	a=int(input())
	b=int(input())
	r=a/b
	print('商是:',r)
except:
	print('错误')
else:
	print('正确')
finally:
	print('结束')

当输入:

16

8

A.错误

B.
商是: 2.0
正确

C.
商是: 2
正确
结束

D.
商是: 2.0
正确
结束

第 8 题 单选题

Python中将十进制20转化成八进制,我们可以使用下列哪个表达式?( )

A.bin(20)

B.int(20)

C.oct(20)

D.hex(20)

第 9 题 单选题

下列进制转换,正确的是?( )

A.0x14转化为十进制,结果是20。

B.20转化成八进制,结果是0o20。

C.0x14转化为十进制,结果是22。

D.20转化成八进制,结果是0o30。

第 10 题 单选题

关于二进制、八进制、十六进制与十进制相互转换,下列说法正确的是?( )

A.十六进制转化为十进制,可以使用除16求余数,再顺序输出。

B.二进制转化为十进制,可以使用除2求余数,再逆序输出。

C.十六进制转化为十进制,可以使用除16求余数,再逆序输出。

D.n位二进制能表示的最大十进制数是2的n次方减一。

第 11 题 单选题

将十进制2022转化成十六进制,可以使用下列哪个表达式?( )

A.bin(2022)

B.int(2022)

C.oct(2022)

D.hex(2022)

第 12 题 单选题

abs(-4.8)运行的结果是?( )

A.4.8

B.-4

C.-5

D.5

第 13 题 单选题

关于ord( )函数与chr( )函数,下列说法正确的是?( )

A.ord( )函数的参数是整数。

B.ord( )函数的参数是字符串类型。

C.chr( )函数的参数是字符串类型。

D.chr( )函数返回的数据类型是int。

第 14 题 单选题

运行下列程序,输出的结果是?( )

a=[34,7,8,23]

max(a)+abs(-5)

A.12

B.13

C.18

D.39

第 15 题 单选题

set('小明你好')运行的结果是?( )

A.['好', '你', '明', '小'] # 列表中,文字顺序不固定

B.('好', '你', '明', '小') #元组中,文字顺序不固定

C.{'好', '你', '明', '小'} #集合中,文字顺序不固定

D.{'你', '好', '小', '明'} #文字顺序固定

第 16 题 单选题

如下程序:

a=[5,10,32,7]
  for i in a:
	  print(i,”:”,bin(i))

该程序段的功能是?( )

A.分别输出5,10,32,7的二进制数。

B.分别输出5,10,32,7的八进制数。

C.分别输出5,10,32,7的在列表中的索引位置。

D.分别输出5,10,32,7的十六进制数。

第 17 题 单选题

下列表达式的值最大的选项是?( )

A.len([1,2,3,4,5,789])

B.max([78,6,5,67] )

C.abs(-90)

D.round(38.4)

第 18 题 单选题

divmod(6,2)的运行结果是?( )

A.8

B.4

C.(3,0)

D.(0,3)

第 19 题 单选题

如果不知道对象的数据类型,我们可以使用什么函数查看?( )

A.type()

B.dir()

C.set()

D.help()

第 20 题 单选题

运行下列程序,输出的结果是?( )

x=7
print(eval(“x+4”))

A.输出”x+4”

B.输出数字11

C.输出“7+4”

D.程序出错

第 21 题 单选题

关于enumerate()函数的说法不正确的是?( )

A.该函数是Python内置函数。

B.该函数可用于判断数据类型是否是数值类型。

C.该函数可将一个可遍历对象按照设置的序号组合成一个索引序列。

D.该函数通常用在for循环中,可返回一个内部由一个个元组组成的列表。

第 22 题 单选题

enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列。下列程序

example = '7890'
for i,j in enumerate(example):
	print(i,j)

运行后的输出结果是?( )

A.

0,7
1,8
2,9
3,0

B.

(0 7)
(1 8)
(2 9)
(3 0)

C.

0 7
1 8
2 9
3 0

D.

(0,7)
(1,8)
(2,9)
(3,0)

第 23 题 单选题

关于算法描述的三种基本结构,下列哪项正确?( )

A.顺序结构、选择结构、循环结构。

B.if选择结构、for循环、while循环。

C.处理框、判断框、流程线。

D.自然语言、流程图、程序设计语言。

第 24 题 单选题

“韩信点兵”是一个古老的数学问题,可以应用中国剩余定理进行求解。以下是使用计算机解决“韩信点兵”问题的几个步骤:

①编写Python程序,用计算机进行处理。

②设计“韩信点兵”求解算法。

③验证算法的功能和性能。

④分析问题,确定解题任务。

使用计算机解决“韩信点兵”问题,正确的步骤是下列哪一项?( )

A.②④①③

B.④①②③

C.④②③①

D.④②①③

第 25 题 单选题

小明使用Python编程模拟绘制了物体在自由落体运动过程中产生的抛物线轨迹。小明设计的这一算法属于下列哪一种?( )

A.枚举算法

B.解析算法

C.排序算法

D.对分查找算法

判断题

第 26 题 判断题

小明编写了代码一,小红看到后说:“我写的代码二,打印出来的结果与小明的代码一相同”。请判断,小红所说对吗?( )

代码一:

f = open('成绩.csv', 'r')
for i in f:
	a = i.strip('\n').split(',')
	print(a)
f.close

代码二:

f = open('成绩.csv', 'r')
a = []
for i in f:
	a.append(i.strip('\n').split(','))
f.close
print(a)

A.正确 B.错误

第 27 题 判断题

有一个名为“身体素质.csv”的文件,内容为学生的姓名、身高和体重,文件内容如下:

李四,127,32

王五,131,34

赵六,129,33

小明想编写代码,在整个文件的首行,插入数据“张三,133,36”,他编写了如下代码,请判断,代码能正确运行吗?( )

f = open('身体素质.csv', 'a')
f.seek(0,0)  #用seek()方法,将文件指针移动到整个文件的最前面。
f.write('张三,133,36\n')
f.close()

A.正确 B.错误

第 28 题 判断题

使用异常处理的方式执行程序时,当try里面的程序出现数据类型输入错误时,执行except ZeroDivisionError下面的语句;当try里面的程序出现除数为零的错误时,执行except ValueError下面的语句。( )

A.正确 B.错误

第 29 题 判断题

八进制数0o10转化成十六进制数为0x8。( )

A.正确 B.错误

第 30 题 判断题

执行代码print(type(0x20)),运行结果是 < class 'int'>。( )

A.正确 B.错误

第 31 题 判断题

divmod()函数执行结果是返回一个包含商和余数的元组。( )

A.正确 B.错误

第 32 题 判断题

all()函数用于判断给定的可迭代参数中的所有元素是否都为False,若是返回True,否则返回False。( )

A.正确 B.错误

第 33 题 判断题

any()函数用于判断给定的可迭代参数中的所有元素是否都为True,若是返回True,否则返回False。( )

A.正确 B.错误

第 34 题 判断题

具有查看函数或模块说明功能的函数是help()。( )

A.正确 B.错误

第 35 题 判断题

小明编写了如下所示的3行代码 :

list1 = ['赵','钱','孙','李','周','吴','郑','王'] 
print(list1[1:-4]) 
print(list1[1:4]) 

小红看到代码后说:“小明,你这代码第2行与第3行,两次运行的print()函数,结果完全相同呀。”

请判断,小红所说,是否正确?( )

A.正确 B.错误

编程题

第 1 题 问答题

小明用冒泡排序算法编写了一段代码,请帮他把代码中红色标记的①②③处,补充完整。

a = [8,4,2,11,3,9]
n = len(a)
for i in range(0,     ①     ):
	for j in range(0,     ②     ):
		if a[j]>a[   ③   ]:
			a[j],a[j+1] = a[j+1],a[j]      
print(a)

第 2 题 问答题

下面程序,按字典序列统计出单词的个数,执行结果如下:

are:2
first:2
happy:1
is:3
your:2

请补全下列代码中的①②③④四处。

a=['is','happy','is','your','are','first','first','is','are','your']
n=len(a)-1
for i in range(0,n):
	for j in range(i+1,n+1):
		if a[i]>a[j]:
				  ①     
key=a[0]
i=1
ans=1
while i<=n:
	if key==a[i]:
			   ②    
		i+=1
	else:
		print(a[i-1]+':'+str(ans))
		key=a[i]
			   ③     
		i+=1
	   ④      

第 3 题 问答题

请读取文件"cj.csv"的数据,数据内容如下图所示:

下列代码实现了读取“姓名”和“体质测试”信息,输出“体质测试”考核为A的数量(大于等于85分)并显示相应同学姓名,请你补全代码。

import csv
with open('cj.csv') as f:
	 rows = list(  ①  )
	 n=0
	 for row in rows[1:]:
		if   ②  :
			print(row[0])
			n+=1
print(n)