试卷 2023年5月青少年软件编程Python等级考试(三级)试卷
2023年5月青少年软件编程Python等级考试(三级)试卷
选择题
第 1 题    单选题

请选择,下面代码运行之后的结果是?(

a = '2'
b = '4'
try:
    c = a * b
    print(c)
except:
    print('程序出错!')
else:
    print('程序正确!')
A.

24

B.

8

C.

程序出错!

D.

程序正确!

第 2 题    单选题

下列数据中,最大的数值是?

A.

int('16',10)

B.

int('110',2)

C.

int('11',16)

D.

int('1111',2)

第 3 题    单选题

打开b.txt文件,将"Hello Tom!"写入文件,下列语句正确的是?

A.

f.write(['Hello'],[Tom!])

B.

f.read('Hello',' Tom!')

C.

f.write('Hello Tom!')

D.

f.read('Hello Tom!')

第 4 题    单选题

下面程序执行结果是?(

s='123456789'
print(min(s)+max(s))

A.

1

B.

9

C.

10

D.

19

第 5 题    单选题

下面程序执行结果是?( )

a=['春','夏','秋','冬']
c=list(enumerate(a))
print(c)
A.

[(0, '春'), (1, '夏'), (2, '秋'), (3, '冬')]

B.

[[0, '春'], [1, '夏'], [2, '秋'], [3, '冬']]

C.

[(1, '春'), (2, '夏'), (3, '秋'), (4, '冬')]

D.

[1, '春'], [2, '夏'], [3, '秋'], [4, '冬']]

第 6 题    单选题

已知x,y,z=map(int,['20','2','3']),则表达式x+y+z的结果是?

A.

程序出错

B.

2023

C.

21

D.

25

第 7 题    单选题

下列表达中,和range(8)的结果相同的是?

A.

range(0,8)

B.

range(1,8)

C.

range(0,8,2)

D.

range(1,9)

第 8 题    单选题

下列有关于函数的说法,正确的是?

A.

bool( )函数是一个类型转换函数,用于将给定参数转换为布尔类型,若没有参数,则出错

B.

ascii()函数和ord()函数功能都是返回一个数值类型的数据

C.

filter()函数用于过滤序列,过滤不符合条件的元素,一般由两个参数组成,即函数和序列

D.

map()函数主要用于画地图

第 9 题    单选题

下列表达式的结果为True的是?

A.

len("13"+"4")>14

B.

ord(min("banana"))<65

C.

sum([13,14,16])==53

D.

any(["a","b","","d"])

第 10 题    单选题

若scores="9,7,8,9,6,5",则list(scores)的结果是?

A.

[9,7,8,9,6,5]

B.

['9','7','8','9','6','5']

C.

['9', ',', '7', ',', '8', ',', '9', ',', '6', ',', '5']

D.

9,7,8,9,6,5

第 11 题    单选题

编写程序代码时,我们经常会犯错,对于Python的异常处理,描述正确的是?

A.

可以用if…elif…else…进行异常处理

B.

异常处理可以弥补程序漏洞,让程序在任何情况下都不会终止运行

C.

通过异常处理语句,当程序输入错误时,仍可以让程序继续运行

D.

当遇到错误语句时,将执行try代码块语句

第 12 题    单选题

有代码如下:

s=["白日依山尽","黄河入海流","欲穷千里目","更上一层楼"]
f=open('sj.txt','w')
f.write('\n'.join(s))
f.close()


关于上述代码,说法不正确的是?( )

A.

写入文本文件的步骤主要是打开——写入——关闭

B.

f.write('\n'.join(s))与f.write(' '.join(s)+'\n')的功能是相同的

C.

write()的参数是一个字符串,而writelines()的参数可以是字符串也可以是字符序列

D.

该代码的功能是将列表中的诗句按行写入文本文件

第 13 题    单选题

有如下代码:

res = []
f = open('Python08.txt','r')  #Python08.txt中共4行诗句
p = f.readlines()
for s in p:
    res.append(s)
print(res)
f.close()

对于该段代码,说法不正确的是?( )

A.

程序的功能是按行读取文本文件中的内容,并将其逐一写入列表res

B.

此处readlines()用法错误,应改成readline()

C.

该文本文件和程序代码文件在同一文件夹下

D.

参数'r'不允许修改该文本文件

第 14 题    单选题

达式int('13',8)的返回值是?

A.

12

B.

11

C.

10

D.

15

第 15 题    单选题

十六进制数7E转换为二进制数是几位数?

A.

7

B.

6

C.

4

D.

2

第 16 题    单选题

二进制数11110010转换为十六进制数是?

A.

1502

B.

152

C.

F2

D.

F02

第 17 题    单选题

对一组数据"6,1,3,2,8"进行排序,按从小到大的顺序进行排列,使用冒泡算法进行编程,则第一轮过后,排序的结果是?

A.

1,6,3,2,8

B.

1,3,6,2,8

C.

1,3,2,6,8

D.

1,2,3,6,8

第 18 题    单选题

暴力破解是一种常见的网络攻击行为,它采用反复试错的方法去尝试破解用户的密码。这种黑客工具主要使用以下哪种算法进行设计?

A.

枚举算法

B.

解析算法

C.

排序算法

D.

对分查找算法

第 19 题    单选题

执行print(list(range(4)))语句后,显示的结果是?

A.

0,1,2,3]

B.

[1,2,3,4]

C.

[0,0,0,0]

D.

['' ,'' ,'' ,'' ]

第 20 题    单选题

在交互式编程环境下执行a = input("请输入考试成绩:")语句后,通过数字键盘输入数值89.5。输入完成后,查看变量a的数据类型,会是下列哪一种?

A.

float

B.

int

C.

str

D.

bool

第 21 题    单选题

divmod()是Python的内置函数。对应变量x和y,divmod(y,x)返回的结果是?

A.

(x//y, x%y)

B.

(x%y, x//y)

C.

(y//x, y%x)

D.

(y%x,y//x)

第 22 题    单选题

abs()是Python的内置函数,执行abs(-1.00)语句返回的结果是?

A.

-1.00

B.

1

C.

1.0

D.

1.00

第 23 题    单选题

使用open函数打开某个CSV格式文件后,如果要将整个文件里的内容读取到一个列表中,需要使用以下文件对象的哪个函数?

A.

read()

B.

readline()

C.

readlines()

D.

flush()

第 24 题    单选题

下列关于二维数据的描述,正确的是?

A.

二维数据就是由两个一维数据组成

B.

二维数据由多个一维数据组成

C.

二维数据的每一个一维数据之间,只能采用逗号进行分隔

D.

二维数据不适合以表格的形式进行存储

第 25 题    单选题

《孙子算经》是我国古代重要的数学著作,其中有一题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”小王同学用Python编写了如下程序:
x=1
while x>0:
    if not (   ):
        x+=1
    else:
        print(x)
        x+=1
关于上述程序,下列说法不正确的是?( )

A.

把第一个x+=1改成break,则程序输出一个结果

B.

括号内应填入的代码是x%3==2 and x%5==3 and x%7==2

C.

该程序是个死循环

D.

该程序将有无穷多个输出

选择题
第 26 题    判断题

下列这段代码能够正常运行。对吗?( )

while True :
    a = input('请输入一个整数,若不是整数将会让你重新输入:  ' )
    try:
        b = int(a)
    except:
        print('你输入的不是整数!将返回重输。')
    else:
        print('你输入的是整数,程序结束。')
        break
A.
正确
B.
错误
第 27 题    判断题

sum()函数不仅可以对列表数据进行求和,也可以对元组数据进行求和。

A.
正确
B.
错误
第 28 题    判断题

round()函数属于数学函数,可用于近似保留小数位数。

A.
正确
B.
错误
第 29 题    判断题

sort()与sorted()函数的区别在于前者默认是升序,后者默认是降序。

A.
正确
B.
错误
第 30 题    判断题

a=['shanghai','beijing','tianjin','chongqing','hangzhou']

with open ('city.csv','w')as f:

f.write(','.join(a)+'\n')

本段代码最后还缺少一条'f.close()'语句以关闭文件。

A.
正确
B.
错误
第 31 题    判断题

file=open('fruits.csv','r')

name=file.read().strip('\n').split(',')

file.close()

上述代码的功能是读取文件中的数据到列表。(

A.
正确
B.
错误
第 32 题    判断题

使用open()方法一定要保证关闭文件对象,即调用close()方法。

A.
正确
B.
错误
第 33 题    判断题

二进制数1101011011转换成十六进制数是35B。

A.
正确
B.
错误
第 34 题    判断题

十进制数转十六进制数以后,位数一定变少了。

A.
正确
B.
错误
第 35 题    判断题

一组有n个元素的数列,如采用顺序查找法找到数列中的某一个元素,平均查找次数为 (n+1)/2 次。

A.
正确
B.
错误
编程题
第 36 题    问答题

Python等级考试三级编程题:某班级期中考试成绩汇总在文件“score.csv”中,包含了语文、数学、英语三科的分数,数据内容如下图显示:

小明编写了如下程序,读取成绩文件中的数据,并分别计算语文、数学、英语三科成绩的平均分,请你补全代码。

import csv
ChineseNum=0
MathNum=0
EnglishNum=0
num=0
with open('/data/score.csv',encoding='utf-8') as csv_file:
    row = csv.reader(csv_file, delimiter=',')
    next(row)  # 读取首行
    for r in row:
        ChineseNum += float(        ①        )
        MathNum += float(        ②        )
        EnglishNum += float(        ③        )
        num +=         ④        
print("语文平均成绩是:%.2f"%(ChineseNum/num))
print("数学平均成绩是:%.2f"%(MathNum/num))
print("英语平均成绩是:%.2f"%(EnglishNum/num))
第 37 题    问答题

Python等级考试三级编程题:图书借阅管理程序。

新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。为了提高查找图书的效率,小明使用了二分查找法来设计图书借阅功能。以下是小明编写的图书借阅管理程序,请你补全代码。

library=dict()  #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为['书名',本数])
#书籍入库
nums=len(library)  #先计算图书编号总数
library[nums+1]=['红楼梦',5]     #在编号总数的基础上继续添加新书:library[新编号]=['书名',本数]
library[nums+2]=['西游记',10]
library[nums+3]=['水浒传',5]
library[nums+4]=['三国演义',10]
print(library)

blist=list(library.keys())
#按书名借阅:
bookname=input('请输入借阅图书名称:')

min_v = blist[0]
max_v = blist[-1]
turns=0

while min_v <=         ①        :
    turns += 1
    cur  =  (min_v + max_v)        ②         
    print(cur)
    if library[cur][0] ==         ③        :        
        if library[cur][1]  >  0: 
            library[cur][1]  -=         ④        
            print('《%s》借阅成功!'%bookname)
        else:
            print('抱歉,您选择的书籍已被借完!')
        break
    elif blist[cur-1] > cur:
        min_v =         ⑤           
    else:
        max_v =         ⑥       
print("经过%d轮二分查找,完成图书的搜索。"%turns)
第 38 题    问答题

Python等级考试三级编程题:小组同学按身高从高到低输出名单

某班天天向上小组共有6个同学,姓名和身高数据分别存放在列表a中,编写程序实现小组同学按身高从高到低输出名单,运行结果如图所示:

程序代码如下,请在划线处补充完整:

a=[["李洪全",135],["王倩倩",154],["吴乐天",148],["周立新",165],["鲁正",158],["杨颖颖",150]]
for i in range(1,len(a)):
    for j in range(0,        ①        ):
        if a[j][1]        ②        a[j+1][1]:
            a[j],a[j+1]=a[j+1],a[j]
print("小组名单是:")
for i in range(len(a)):
print(        ③        )
答题卡
选择题
选择题
编程题
36 37 38
题目总数:38
总分数:100
时间:90分钟