202409 青少年软件编程等级考试Python三级真题 建议答题时长:60min(含答案及分析)

原连接:竞赛考级题库–202409 青少年软件编程等级考试Python三级真题 – Python

1. 编程题

鸡兔同笼

小明在解决经典的“鸡兔同笼”问题时,使用“穷举法”编写了以下代码。请将代码中红色①②③④处补充完整:

tou = int(input("请输入笼中鸡与兔脑袋的总数:  "))

jiao = int(input("请输入笼中鸡与兔脚的总个数:  "))
a = 0
for ji in range(       ①        ):
   tu =       ②        – ji
   if 2 * ji  +  4 * tu  ==       ③        :
       print("鸡的个数为:", ji, "兔的个数为:", tu)
       a = a + 1
if a ==       ④        :
   print("头数与脚数不合理,没有合适的结果。")

查看答案https://tiku.kids-scratch.com/dist/#/topic?gid=b2b02d97bbec092c361d902ad14ead34

2. 编程题

有一个数字构成的列表 a = [6,2,3,5,4,5,2,6,5,5,4,3,7],小明用冒泡排序算法编写了一段程序,将列表中的数字从小到大排列,运行结果为: [2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7]  ,请将下面程序中红色 ①②③ 处欠缺的代码补充完整。

a = [6,2,3,5,4,5,2,6,5,5,4,3,7]

for i in range(0,                ) :
   for j in range(i+1 ,       ②        ) :
       if       ③        :
           a[i] , a[j] = a[j] , a[i]
print(a)

查看答案https://tiku.kids-scratch.com/dist/#/topic?gid=8a05fd2bce0a0f8a13eea19cbdfff00f

3. 编程题

某实验小学举行了跳绳比赛,其中四年级1班和2班的比赛数据存储在“ts.csv”中,如图所示,现要求Python读取该比赛数据文件,并统计各班成绩在110(含110)以上的人数。实现代码如下,请你补全划线处代码:

import csv

with open ("/data/ts.csv") as fs:

   hs=list(csv.reader(        ①        ))

   c1=0

   c2=0

   for i in hs[1:]:

       if i[0]=="1"and       ②        >=110:

           c1+=1

       elif i[0]=="2"and       ③        >=110:

           c2+=1

   print("四(1)班110以上的有:"+str(c1)+"个")    print("四(2)班110以上的有:"+str(c2)+"个")

查看答案https://tiku.kids-scratch.com/dist/#/topic?gid=f98f694f9b24cf2cf18b06024d3a2b26

4. 单选题

使用open函数打开一个csv格式文件后,如果要将整个文件里的内容读取存放到一个字符串变量中,需要使用以下文件操作的哪个函数?( )

A

read()

B

readline()

C

readlines()

D

write()

答案:A

分析:

read() 方法用于从文件读取指定的字节数,默认读取整个文件。readline() 每次读出一行内容,返回一个字符串对象。readlines() 方法用于读取所有行并返回列表。write() 用于向文件中写入指定字符串。

5. 单选题

使用 readline()和readlines()函数可以读取txt文件中的数据。D盘“jieqi.txt”文件内容如下图,小明编写了下面代码,运行后打印在屏幕上的结果是?( )

f=open(r"D:\jieqi.txt", "r")
s = f.readline()
s1=f.readlines()
f.close()
print(s1)

A

立春

B

雨水

C

[雨水,惊蛰,春分]

D

['雨水\n','惊蛰\n','春分\n']

答案:D

分析:

readline() 每次读出一行内容,返回一个字符串对象,文件指针下移。readlines()读取下面整个文件所有行,保存在一个列表变量中,每行作为一个元素。

6. 单选题

下列代码的运行结果是?( )

l=list(map(float, (1,2,3,4)))

print(l)

A

[1,2,3,4]

B

['1','2','3','4']

C

[1.0,2.0,3.0,4.0]

D

['1.0','2.0','3.0','4.0']

答案:C

分析:

将元组转换成浮点型列表。

7. 单选题

表达式[3] in [1, 2, 3, 4]的结果是?( )

A

2

B

3

C

False

D

True

答案:C

分析:

[3]in[1,2,3,4]是后面这个列表是否包含另一个列表,且这个列表里面还有个数字3,显然不包含,所以是False。

8. 单选题

运行以下代码,得到的结果是?( )

a='20'

b='24'

print(a+b)

A

44

B

2024

C

20+24

D

'44'

答案:B

分析:

两个字符串相加。

9. 单选题

关于filter()函数的使用,以下哪个选项不正确?( )

A

filter()函数可以用于过滤出一个序列里符合函数功能的元素

B

filter()函数接收两个参数

C

filter()函数只能过滤列表

D

filter()函数可与lambda匿名函数一起使用

答案:C

分析:

filter()可以过滤列表、元组、集合或字符串等。

10. 单选题

使用with语句可以读取csv格式文件中的数据,下图所示,有一个名为“jieqi.csv”的文件,小明针对这个文件编写如下代码,请问代码运行后打印在屏幕上的结果是?( )

A

立春,雨水,惊蛰,春分

B

[立春,雨水,惊蛰,春分]

C

['立春,雨水,惊蛰,春分']

D

['立春','雨水','惊蛰','春分']

答案:D

分析:

从csv格式文件中读出数据,表示为列表对象。

11. 单选题

表达式oct(11)的值是?( )

A

'0b11'

B

'0x11'

C

'0o13'

D

13

答案:C

分析:

oct()函数的功能是将十进制整数转换为八进制的数字字符串,结果为字符串。'0b'代表二进制,'0x'代表十六进制,'0o'代表八进制。

12. 单选题

表达式list(map(str, [1, 2, 3, 4, 5])) 的值为?( )

A

[1,2,3,4,5]

B

{1,2,3,4,5}

C

['1','2','3','4','5']

D

{'1','2','3','4','5'}

答案:C

分析:

将序列中的元素从整型转换为字符串类型。

13. 单选题

表达式[1, 2, 3]*3的执行结果为?( )

A

[3,6,9]

B

[1,2,3],[1,2,3,],[1,2,3,]

C

[1, 2, 3, 1, 2, 3, 1, 2, 3]

D

[123123123]

答案:C

分析:

将列表连续输出3次。

14. 单选题

表达式 sum(range(5)) 的值为?( )

A

5

B

55

C

10

D

15

答案:C

分析:

0到4相加等于10。

15. 单选题

s='abcdefg',min(s)='a',max(s)='g',所以结果为两个字符串相连,正确答案为:ag。

A

如果存在jieqi.csv文件,将覆盖jieqi.csv文件内容

B

如果不存在jieqi.csv文件,将产生一个jieqi.csv文件

C

程序运行后jieqi.csv文件内容不变

D

程序运行错误

答案:B

分析:

将列表对象输出为csv格式文件,如果不存在jieqi.csv文件,将产生一个jieqi.csv文件。参数“a”,为非覆盖,在原有内容之后,继续增加内容。

16. 单选题

十六进制数2024转换为二进制数是?( )

A

2024

B

10000000100100

C

11000011100

D

10000010100

答案:B

分析:

十六进制数转二进制数,从低位起,每1位十六进制数可转换为4位二进制数,最左边的0可以省略,但中间的0不可省略。A为十进制数,C中十六进制2应为0010,D选项将中间的部分0省略了,故选B。

17. 单选题

对于列表[3, 1, 5, 8, 2, 10]按从左往右进行升序的冒泡排序,则第几轮排序后的结果就是有序的?( )

A

3

B

4

C

5

D

6

答案:A

分析:

第1轮:1 3 5 2 8 10;第2轮:1 3 2 5 8 10;第3轮:1 2 3 5 8 10。

18. 单选题

对一组数据[7, 2, 9, 4, 8, 1, 4, 5]进行排序,使用选择排序按从大到小的顺序进行排列,则第1轮排序过后的结果是?( )

A

2, 7, 4, 8, 1, 4, 5, 9

B

9, 8, 7, 4, 2, 1, 4, 5

C

9, 2, 7, 4, 8, 1, 4, 5

D

7, 2, 4, 8, 1, 4, 5, 9

答案:C

分析:

选择排序算法的主要思想是每次从未排序部分选择最小(或最大)元素,然后将它放到已排序部分的末尾。

所以选项C正确,第1轮排序找到最大值9,将9和7交换位置;

选项A用的是冒泡排序;

选项B是第2轮排序后的结果;

选项D将9放到了数据的末端,排序后的结果是从小到大排序的。

19. 单选题

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

a = '2'

b = '4'

try:

   c = a * b

   print(c)

except:

   print('程序出错!')

else:

   print('程序正确!')

A

8

B

24

C

程序正确!

D

程序出错!

答案:D

分析:

变量a与b都是字符串,不能进行乘法运算,所以经过异常处理之后,会打印”程序出错!“。

20. 单选题

运行以下代码,输出的结果是?( )

s='abcdefg'

print(min(s)+max(s))

A

ag

B

a

C

g

D

ga

答案:A

分析:

s='abcdefg',min(s)='a',max(s)='g',所以结果为两个字符串相连,正确答案为:ag。

21. 单选题

十进制数15转换为二进制数,其结果是?( )

A

F

B

10101

C

1101

D

1111

答案:D

分析:

十进制转二进制,采用除2倒取余数的方法,故选D。A为十六进制数,B和C混淆了十六进制和二进制的转换方法。

22. 单选题

表达式divmod(6,2)结果为?( )

A

(3)

B

(0)

C

(3,0)

D

[3,0]

答案:C

分析:

divmod(6,2)返回一个元组(6//2,6%3),余数为0不能省略。

23. 单选题

以下表达式的值为True的是?( )

A

all(' ','1','2','3')

B

any([])

C

bool('abc')

D

divmod(6,0)

答案:C

分析:

A和B选项,False;D选项,报错;C选项,True。

24. 单选题

对分查找,也称作二分查找,对一个列表中的元素进行对分查找的前提条件是?( )

A

列表元素无序

B

列表元素有序

C

列表元素唯一

D

列表元素数量必须是偶数

答案:B

分析:

对分查找是一种基于比较的查找算法,它要求列表元素有序,以便在每次比较时能够缩小搜索范围。

25. 单选题

将水果价格一维数据['苹果','8元']写入"jiage.csv"文件操作,横线上填写正确的是?( )

f = open("jiage.csv", "w")

ls = ['苹果','8元']

f._____(",".join(ls)+ "\n")

f.close()

A

insert

B

append

C

write

D

read

答案:C

分析:

write() 用于向文件中写入指定字符串。

26. 单选题

下列有关数制的说法,错误的是?( )

A

二进制的基本数码是0、1、2

B

数据在计算机内部是以二进制方式存储和处理的

C

十六进制采用逢十六进一的进位规则

D

十进制的8大小等同于十六进制的8,但十进制的18不等同于十六进制的18

答案:A

分析:

二进制的基本数码是0、1,进位规则是逢二进一,故不存在2数码。

27. 单选题

write() 用于向文件中写入指定字符串。

A

它以 '0b' 开头,表示这是一个二进制数

B

它只包含字符 '0' 和 '1'

C

它的长度总是固定的

D

它表示的是输入整数的二进制表示

答案:C

分析:

bin() 函数返回的字符串长度不是固定的,它取决于输入整数的二进制表示所需的位数。例如,bin(2) 返回 '0b10',而 bin(10) 返回 '0b1010'。因此,选项 C(它的长度总是固定的)不是 bin() 函数返回值的特点。

其他选项 A、B 和 D 都是正确的。

28. 判断题

列表c=[[' 张三','88'],['李四','92'],['王五','85']]可以表示二维数据。( )

A

正确

B

错误

答案:正确

分析:

二维列表本身是一个列表,其中的每一个元素又是一个列表。c是二维列表数据。

29. 判断题

map()函数不改变原列表,而是返回一个新列表。( )

A

正确

B

错误

答案:正确

分析:

map()函数返回的是一个新列表。

30. 判断题

十六进制转换成十进制数,其位数一定会变多。( )

A

正确

B

错误

答案:错误

分析:

该说法太绝对。比如,十六进制0~9转换成十进制数,其结果是一样的。

31. 判断题

acsii(‘0’),运行的结果是48。( )

A

正确

B

错误

答案:错误

分析:

acsii(‘0’),运行的结果是“‘0’”。

32. 判断题

表达式bool(max(6,7,8))和max(bool(6,7,8))的运行结果都是

A

正确

B

错误

答案:错误

分析:

bool(max(6,7,8))的运行结果为True;max(bool(6,7,8))会报错,因为bool()最多有一个参数,此题有3个参数。

33. 判断题

在Python中使用with语句打开文件,程序运行处理结束后会自动关闭被打开的文件。( )

A

正确

B

错误

答案:正确

分析:

在Python中使用with语句,结束文件时,Python会自动调用close()关闭这个文件。

34. 判断题

请仔细阅读以下代码,判断这段代码能否正常运行?( )
while True :
   a = input('请输入一个整数,若不是整数将会强制让你重新输入:  ' )
   try:
       b = int(a)
   except:
       print('你输入的不是整数!将返回重输。')
   else:
       print('你输入的是整数,程序结束。')
       break

A

正确

B

错误

答案:正确

分析:

本题需要学生正确理解 try—except—else三个语句的作用,代码利用了错误处理机制,所以能正确运行。

35. 判断题

假设五进制数2用(2)5表示,若表达式(6)n+(1)n=(10)n成立,那么该n进制一定为七进制。( )

A

正确

B

错误

答案:正确

分析:

由于数字6的存在,该进制一定是7进制及以上,6+1发生了进位,说明是逢七进一,所以一定是7进制,8进制及以上构不成进位。

36. 判断题

abs(-1.0)的运行结果为1。( )

A

正确

B

错误

答案:错误

分析:

abs(-1.0)的运行结果为1.0。

37. 判断题

在Python中open('city.csv','r')命令的作用是以可写入的方式打开文件名为city的csv格式文件。( )

A

正确

B

错误

答案:错误

分析:

open()函数中参数"r"是以只读方式打开文件。

作者:竞赛考级题库

物联沃分享整理
物联沃-IOTWORD物联网 » 202409 青少年软件编程等级考试Python三级真题 建议答题时长:60min(含答案及分析)

发表回复