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

分数:100  题数:38

一、单选题(共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]

试题编号:20240129-tym-001

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:二维数组中行和列的数据索引都是从0开始,张坤在列表的第4个,索引是3,最好的成绩是第1次,索引是1,所选C。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

2.      一所小学有六个年级,每个年级有5个班,现用二进制对所有班级进行编码,最少需要几位二进制?( )

A.             4位

B.              5位

C.              6位

D.             7位

试题编号:20240129-tym-005

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:5位二进制编码可表示0-31,30小于31,答案为B选项。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

3.      以下哪项Python表达式的运行结果是正确?( )

A.             int("1001",2),结果为9

B.              int("26",8),结果为21

C.              int("1a",16),结果为25

D.             int("0x8e",16),结果为143

试题编号:20240129-tym-006

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:A选项,结果为9,正确;B选项,结果为22,错误;C选项,结果为26,错误;D选项,结果为142,错误。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

4.      有如下Python程序:

c=['语文','数学','英语']

f=open('course.csv','w')

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

f.close()

下列说法正确的是?( )

A.             当前程序的功能是将CSV文件输出为列表对象

B.              运行后,程序不报错,也不回应

C.              如果没有.csv文件,则会新建一个.csv文件和.py文件在同一个目录

D.             打开.csv文件是空白的

试题编号:20240129-tym-030

试题类型:单选题

标准答案:C

试题难度:容易

试题解析:这段代码在当前文件夹中创建了一个名为 course.csv 的文件。如果指定的文件不存在,open()函数将创建一个新文件; 如果指定的文件存在,则打开现有文件。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

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

试题编号:20240203-zm-018

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续采用这种选择和交换方式,最终得到一个有序序列。本题第一轮排序结果是[2,9,3,6,7,5],第二轮排序结果是[2,3,9,6,7,5]。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

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]

试题编号:20240203-zm-019

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:如果a[j]>key,需要将a[j]后移到a[j+1]的位置,腾出插入空间。故选a[j+1]=a[j]。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

7.      计算三角形面积,可以采用的算法是?( )

A.             解析算法

B.              枚举算法

C.              排序算法

D.             查找算法

试题编号:20240203-zm-020

试题类型:单选题

标准答案:A

试题难度:容易

试题解析:解析算法是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。计算三角形面积用三角形面积公式求解。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

8.      二进制数 11001010 转换为十六进制是?( )

A.             202

B.              CA

C.              AC

D.             A

试题编号:20240205-lxf-001

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:二进制转十六进制,从后向前依次取四个数计算,即1010的16进制是A,1100的16进制为C,合在一起是CA。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

9.      表达式hex(12)的返回值是?( )

A.             '0x12'

B.              '0xc'

C.              '0b12'

D.             '0bc'

试题编号:20240205-lxf-002

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:hex函数可以将一个十进制数转换为16进制,12的16进制数为c,0x表示16进制数,0b表示2进制数,所以本题选择B。

考生答案:A

考生得分:0

是否评分:已评分

评价描述:

10.   想要在一个csv文件中写入内容并且不覆盖原来的数据,应该使用什么模式打开文件?( )

A.             w

B.              r

C.              a

D.             b

试题编号:20240205-lxf-007

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:w模式可以写入文件,但是会覆盖文件内容;

r模式可以读取文件内容;

b模式是以二进制的方式打开文件;

a模式可以写入文件,并且不覆盖原有的文件内容。

综上所述,本题选择C选项。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

11.   以下说法正确的选项是?( )

A.             Python中列表、元组中的元素数据都不可以重复

B.              如果csv文件存储的是二维数据,每一行则是一维数据

C.              read()函数和readlines()函数都可以读取整个文件,但是read()函数读取的文件内容存放在一个列表里,readlines()函数读取的文件内容存放在一个大字符串里

D.             writelines()函数和readlines()函数都可以向文件写入多行内容

试题编号:20240205-lxf-008

试题类型:单选题

标准答案:B

试题难度:较难

试题解析:Python中列表和元组中的元素是可以重复的,集合中的元素不可以重复,选项A错误;

read()函数读取的文件内容存放在字符串中,readlines()函数读取的文件内容存放在列表中,选项C错误;

readlines()的作用是读取文件内容,选项D错误;

本题选择B选项

考生答案:C

考生得分:0

是否评分:已评分

评价描述:

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行,分别是桃子、空行、苹果、空行、橙子、空行

试题编号:20240205-lxf-011

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:桃子、苹果、橙子之间用\n\n连接,第1个\n的作用是让文件指针换行,第2个\n的作用是再次换行,所以桃子、苹果、橙子之间各有一个空行。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

13.   下列程序,当输入0时,运行结果是?( )

try:

   x=9

   y=int(input())

   n=x%y

   print('余数是',n)

except:

    print('错误')

else:

    print('正确')

finally:

    print('程序结束')

A.             余数是 0

正确

程序结束

B.              错误

C.              错误

程序结束

D.             程序结束

试题编号:20240209-ppz-017

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:考核 try-except-else-finally 异常处理,当第二个数为0时,出现错误,会忽略try剩余代码,执行except处代码,无论try初代码块是否正确,finally代码块都要执行。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

14.   Python表达式divmod(9,-2)的值是?( )

A.             (-5, -1)

B.              (-5, 1)

C.              (5, -1)

D.             [-5, -1]

试题编号:20240209-ppz-019

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:考核divmod(),其返回值是商和余数构成的元组,其余数符号由第二个参数符号决定。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

15.   若a=set('123456'),b=set('567890'),则{'2', '3', '1', '4'}可能是下列哪个选项的结果?( )

A.             a&b

B.              a|b

C.              a-b

D.             a+b

试题编号:20240209-ppz-023

试题类型:单选题

标准答案:C

试题难度:容易

试题解析:考核 set(),本题求的是差集。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

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中无法处理

试题编号:20240215-ylx-015

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:

输入25和5,计算结果是5.0,程序能正常运行,但不能说明程序是完美的,因为没有考虑除数为0的情况,A错误;当输入为'q'时,程序将发生中断,退出计算,B错误;

遇到无效输入(如0)时,ans=int(fn)/int(sn)语句将发生错误崩溃,C正确;Python中提供了try-except语句来处理异常,D错误。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

17.   已知x=[67,81,45,38,55,-29,83],那么print(max(x))输出的结果将是?( )

A.             29

B.              81

C.              -29

D.             83

试题编号:20240215-ylx-018

试题类型:单选题

标准答案:D

试题难度:容易

试题解析:max()函数的功能是求序列中的最大值,x中的最大值为83。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

18.   下列代码的输出结果是?( )

b='天天向上'

print(b*2)

A.             天天天天向向上上

B.              天天向上天天向上

C.              天天向上*2

D.             天天向上2

试题编号:20240215-ylx-019

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:b是字符串,b*2是将字符串复制2份,print()函数是输出功能,因此选B。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

19.   Python表达式len(str(1234+5678))的结果是?( )

A.             9

B.              5

C.              4

D.             14

试题编号:20240215-ylx-021

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:1234+5678的计算结果为6912,str(6912)的结果为字符串‘6912’,len()表示求序列长度。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

20.   Python表达式round(24/7)的值是?( )

A.             3.0

B.              3

C.              3.4

D.             3.43

试题编号:20240215-ylx-022

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:round()函数表示四舍五入保留小数位数,小数位数参数省略表示保留到整数位。

考生答案:A

考生得分:0

是否评分:已评分

评价描述:

21.   Python中关于ord()函数,下列说法正确的是?( )

A.             该函数的功能是将整数转换为字符串

B.              该函数的功能是将ASCII码值转换为相应字符

C.              该函数的功能是将数字字符串转换为整数

D.             该函数的功能是返回字符的ASCII码值

试题编号:20240215-ylx-023

试题类型:单选题

标准答案:D

试题难度:容易

试题解析:ord()函数的功能是返回字符参数所对应的ASCII码值,其值为int类型。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

22.   有如下Python程序代码:

a=input(“第一个数”)

b=input(“第二个数”)

print(a+b)

若输入的数据是5和3,那么程序的输出结果是?( )

A.             53

B.              8

C.              a+b

D.             5+3

试题编号:20240215-ylx-025

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:input()函数表示输入,默认为字符串类型,故a+b实际为’5’+’3’的结果,print()为输出函数,因此选A。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

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','.']

试题编号:20240215-ylx-026

试题类型:单选题

标准答案:A

试题难度:一般

试题解析:list()函数的功能是将序列中的元素转换为列表中的元素,元素类型不变。st中含有两个字符串元素,因此转换的列表结果也是两个字符串元素。

考生答案:A

考生得分:2

是否评分:已评分

评价描述:

24.   已知A的ASCII码值为65,a的ASCII码值为97,chr(ord(min('Bike'))+2)的结果是?( )

A.             68

B.              103

C.              'D'

D.             'g'

试题编号:20240215-ylx-027

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:字符串”Bike”中的最小值为'B',其ASCII值+2表示'D'的ASCII码值,chr()函数的功能是将ASCII码值转换为相应的字符,因此选C。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

25.   已知a,b,c,d=map(str,[2,0,2,4]),那么d的值是?( )

A.             2

B.              '2'

C.              4

D.             '4'

试题编号:20240215-ylx-028

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:map()为映射函数,表示将列表中的每个数字元素转换为字符元素,分别赋值给a,b,c,d,因此d的结果是字符'4'。

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

二、判断题(共10题,共20分)

26.   十进制数转化为二进制,使用除2反向取余法,十进制转化为其他进制,也可以使用相同的方法,只是除数采用其他进制的基本数码个数。( )

正确        错误         

试题编号:20240129-tym-008

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:十进制数转化为二进制,使用除2反向取余法,十进制数转化为八进制,使用除8反向取余法,十进制数转化为十六进制,使用除16反向取余法,十进制数转化为N进制,使用除N反向取余法。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

27.   Python可以处理一维数据、二维数据和多维数据。( )

正确        错误         

试题编号:20240129-tym-033

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:Python可以处理一维数据、二维数据和多维数据。

考生答案:错误

考生得分:0

是否评分:已评分

评价描述:

28.   (如图)name.csv文件内容如下,下面程序输出的结果是 'Alice', 'Ida', 'Sam', 'Otis', 'Gina' 。( )

with open('name.csv','r') as f:

    n=f.read().strip().split(',')

print(n)

正确        错误         

试题编号:20240209-ppz-008

试题类型:判断题

标准答案:错误

试题难度:容易

试题解析:程序从csv文件中读出数据,结果是列表对象,应为 ['Alice', 'Ida', 'Sam', 'Otis', 'Gina']

考生答案:正确

考生得分:0

是否评分:已评分

评价描述:

29.   下列程序,当输入A时,运行结果是:错误,请输入数字 。( )

try:

   x=int(input())

   y=int(input())

   n=x/y

   print(n)

except ValueError:

    print('错误,请输入数字')

except ZeroDivisionError:

    print('错误,除数不能为0')

except :

    print('其它错误!')

正确        错误         

试题编号:20240209-ppz-016

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:考核try-except-except 进行异常处理,当输入A时,会忽略try剩余代码,执行except ValueError处代码。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

30.   若n=[2,3,5,9,12,6],则max(n)+min(n)+sum(n)的值是52。( )

正确        错误         

试题编号:20240209-ppz-027

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:max(n)=12,min(n)=2,sum(n)=37,所以值为51。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

31.   Python中bool()函数用于将给定参数转换为布尔类型,参数省略的情况下返回True值。( )

正确        错误         

试题编号:20240215-ylx-029

试题类型:判断题

标准答案:错误

试题难度:容易

试题解析:bool()函数省略参数将返回False值。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

32.   Python中若求字符的ASCII码值,可以使用ord()函数,而不是ascii()。( )

正确        错误         

试题编号:20240215-ylx-031

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:ascii()表示返回一个表示对象的字符串。

考生答案:错误

考生得分:0

是否评分:已评分

评价描述:

33.   Python中range(10)表示生成整数序列范围为0~9,并不能生成10。( )

正确        错误         

试题编号:20240215-ylx-032

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:range()表示生成一个整数序列,起始值省略表示默认从0开始,整数10不包含在整数序列内,元素间隔省略默认为1。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

34.   下面三行代码可以正常执行。( )

txt1 = "黑白白白黑白黑白黑白黑白"

a = txt1.count("白") - txt1.count("黑")

print(a)

正确        错误         

试题编号:20240218-ll-012

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:字符串,严格意义上讲也是一种特殊的“列表”,所以可以使用列表的count()方法,统计字符串中元素的个数。本代码中“黑”字有5个,“白”字有7个,两者相减为2,代码能够正确运行。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

35.   二进制111010101转化为十六进制数为1e5。( )

正确        错误         

试题编号:20240129-tym-007

试题类型:判断题

标准答案:错误

试题难度:容易

试题解析:二进制111010101转化为十六进制数为1d5。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

三、编程题(共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("男生的平均身高是:",        ③        )

试题编号:202503-P3-36

试题类型:编程题

标准答案:

参考程序:

import csv

with open("/data/shengao.csv") as f:

    rows=list(csv.reader(f))

    sum=0

    n=0

    for row in rows[1:]:

        if row[1]=="男":

            sum+=int(row[2])

            n=n+1

    print("男生的平均身高是:","%.2f"%(sum/n))

试题难度:一般

试题解析:

评分标准:

(1)shengao.csv 或等效答案;(1分)

(2)sum+=int(row[2]) 或等效答案;(2分)

(3)"%.2f"%(sum/n) 或等效答案。(1分)

展示地址:点击浏览

考生答案:(此题已作答)

考生得分:3

是否评分:已评分

评价描述:

37.   课本分配

某学校由于缺乏课本,信息课要两人共读一本课本,数学课要三人共读一本课本,语文课要四人共读一本课本。书的总数是52本。问信息书、数学书、语文书各有多少本?(每门功课至少要有一本书)

for i in range(1, 51):# 信息书

    for j in         ①        : # 数学书

        k =          ②         # 语文书

        if i*2 == j*3 and j*3==k*4:

            print('信息书共有%d本,数学书共有%d本。语文书有%d本' % (        ③        ) )

试题编号:202503-P3-37

试题类型:编程题

标准答案:

参考程序:

for i in range(1, 51):# 信息书

    for j in range(1, 51): # 数学书

        k = 52 - i - j  # 语文书

        if i*2 == j*3 and j*3==k*4:

            print('信息书共有%d本,数学书共有%d本。语文书有%d本' % (i, j, k))

试题难度:一般

试题解析:

评分标准:

(1)range(1, 51) 或等效答案;(4分)

(2)52 - i - j 或等效答案;(3分)

(3)i, j, k 或等效答案。(3分)

展示地址:点击浏览

考生答案:(此题已作答)

考生得分: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(c)

试题编号:202503-P3-38

试题类型:编程题

标准答案:

参考程序:

c=[3,6,11,18,9,12,5,2,22,10]

count=len(c)

for i in range(0,count-1):

    for j in range(0,count-1-i):

        if c[j]>c[j+1]:

            t=c[j]

            c[j]=c[j+1]

            c[j+1]=t

print(c)

试题难度:容易

试题解析:

评分标准:

(1)len(c) 或等效答案;(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分。

展示地址:点击浏览

考生答案:(此题已作答)

考生得分:13

是否评分:已评分

评价描述:

更多推荐