当前位置:首页>python>2025年12月青少年软件编程(Python)三级等级考试真题+完整解析

2025年12月青少年软件编程(Python)三级等级考试真题+完整解析

  • 2026-09-10 12:38:45
2025年12月青少年软件编程(Python)三级等级考试真题+完整解析

本次Python三级等级考试满分100分,共38题,涵盖单选题25题(50分)、判断题10题(20分)、编程题3题(30分),核心考查数制转换、列表操作、文件处理、异常处理、算法基础等Python重点知识点,内容适配备考复习与知识点梳理,以下为完整版真题+详细解析。

一、单选题(共25题,每题2分,共50分)

1. 将二进制数1011011转换为十六进制数,其末位数字为?( )

  • A.B
  • B.A
  • C.3
  • D.6解析:二进制转十六进制从低位开始,每4位转换为1位十六进制数,高位不足补0;该二进制数最低四位为1011,对应十六进制A。

2. 下列Python代码执行结果是?( )

a = [3, 5, 7, 9]print(a[1:-1])
  • A.[5, 7]
  • B.[3, 5]
  • C.[5, 7, 9]
  • D.[3, 5, 7]解析:切片[1:-1]取列表索引1到倒数第2个元素(含头不含尾),即5和7。

3. 已知 lst = [[1,2], [3,4], [5,6]],lst[1][1] 的值是?( )

  • A.2
  • B.3
  • C.4
  • D.5解析:二维列表索引规则为[行][列],lst[1][1]代表第二行第二列元素,结果为4。

4. 对于下列代码,选项说法正确的是?( )

with open("data.csv", "w") as f:    f.write("Name,Age\nAlice,12\nBob,15")
  • A.读取CSV文件
  • B.创建包含两行数据的CSV文件
  • C.追加数据到文件末尾
  • D.删除文件内容解析:w为新建写入模式,代码创建的CSV文件包含表头+Alice、Bob两行有效数据。

5. 在csv文件中写入内容并且不覆盖原来的数据,打开文件的模式是?( )

  • A.w
  • B.r
  • C.b
  • D.a解析:a为追加模式,在文件末尾写入数据,不覆盖原有内容;w覆盖写入,r只读,b二进制打开。

6. 下列Python代码的功能是?( )

with open("data.txt", "r+") as f:    con = f.read()    f.write(con.upper())
  • A.读取内容并追加大写版本
  • B.覆盖原文件内容为大写
  • C.报错(文件未关闭)
  • D.读取后插入大写内容到开头解析:r+为读写模式,with语句会自动关闭文件;read()后文件指针移至末尾,write()会在文件末尾追加原内容的大写版本。

7. 十进制数25转换为二进制数是?( )

  • A.10011
  • B.11001
  • C.1001
  • D.100110解析:十进制转二进制用除2倒取余数法,25依次除2得余数1、0、0、1、1,倒序排列为11001。

8. 对于二进制数10111,其高位的“1”对应的权值是?( )

  • A.2⁴
  • B.2³
  • C.2²
  • D.2¹解析:k进制数从低位开始,数码对应的权值依次为k⁰、k¹、k²……;二进制10111的高位1为第4位,权值为2³。

9. 十进制数18,转化为八进制数为?( )

  • A.16
  • B.18
  • C.20
  • D.22解析:十进制转八进制用除8倒取余数法,18÷8商2余2,结果为22。

10. 下列有关于算法的描述,正确的是?( )

  • A.算法可以没有输入,但一定有输出
  • B.算法有两种结构,即顺序结构和分支结构
  • C.算法可用程序语言来表示,但不能用自然语言表示
  • D.算法可以没有输出,但必有输入解析:算法的核心特征是必须有输出;包含顺序、分支、循环三种基本结构;可通过自然语言、程序语言、流程图等多种方式表示。

11. 以下问题适合用解析算法求解的是?( )

  • A.寻找班级中59分的同学
  • B.已知底和高分别为a、h,求三角形的面积s
  • C.将同学们按身高从矮到高排队
  • D.寻找100以内的3的倍数解析:解析算法是通过数学表达式建立已知条件和结果的关系,三角形面积公式S=1/2ah符合该特征;A、C、D适合用枚举、排序算法。

12. 已知d=[3,1,4,1,5,9,2,6],在该序列中从前往后查找数字5,需要查找的次数是?( )

  • A.4
  • B.3
  • C.2
  • D.5解析:采用顺序查找法,从第一个元素开始依次比对,依次查3、1、4、1、5,共查找5次。

13. 下面Python代码运行之后的结果是?( )

a = '2'b = '4'try:    c = a * b    print(c)except:    print('程序出错!')else:    print('程序正确!')
  • A.24
  • B.8
  • C.程序出错!
  • D.程序正确!解析:a和b均为字符串类型,字符串之间不能直接进行乘法运算,触发异常,执行except代码块。

14. 小明编写了如下代码,运行后屏幕上打印出的结果是?( )

x = 8y = [3,2,1,0]z = y.pop(1)try:    a = int(x / z)except:    print('程序出错!')else:passfinally:    print(a)
  • A.8
  • B.4
  • C.程序出错!
  • D.屏幕上无输出解析:y.pop(1)取出列表索引1的元素2,x/z=8/2=4,无异常;finally代码块无论是否触发异常都会执行,最终打印a的值4。

15. 表达式divmod(7, 2)返回的结果是?( )

  • A.[1, 3]
  • B.[3, 1]
  • C.(1, 3)
  • D.(3, 1)解析:divmod()函数返回商和余数的元组,7÷2商3余1,结果为(3,1)。

16. 在Python中,min(["ABC", "BCD", "CDA"]) 的返回值是?( )

  • A."ABC"
  • B."BCD"
  • C."CDA"
  • D."A"解析:Python中字符串比较按字符ASCII码值依次比对,"ABC"的第一个字符A的ASCII码小于B、C,故为最小值。

17. 下列Python程序运行的结果为?( )

a=([0,False,''])b=[1,2,3,4,5,6,7,8,9]print(any(a)+all(b))
  • A.False
  • B.True
  • C.0
  • D.1解析:any()判断序列是否有真值,a中0、False、空字符串均为假,any(a)=False(运算时为0);all()判断序列是否全为真值,b中元素均为真,all(b)=True(运算时为1);0+1=1。

18. 在Python中,表达式 abs(-4.5) + int(-4.5) 的值是?( )

  • A.9
  • B.0
  • C.8
  • D.0.5解析:abs(-4.5)返回绝对值4.5;int(-4.5)向下取整为-4;4.5+(-4)=0.5。

19. 下面Python代码的执行的结果是?( )

c= ['低','碳']a= tuple(c)print(a)
  • A.['低','碳']
  • B.{'低','碳'}
  • C.('低','碳')
  • D.”低碳”解析:tuple()函数将列表转换为元组,元组以小括号()包裹元素。

20. 下列程序画线处的代码应该为?( )

c=[11,13,17,23,29,31]for a,i in _____________:    print(a,i)

运行结果: 0 11 1 13 2 17 3 23 4 29 5 31

  • A.int(c)
  • B.chr(c)
  • C.enumerate(c)
  • D.range(c)解析:enumerate()函数将可遍历对象组合为索引-元素序列,同时返回下标和元素,符合输出结果。

21. 下列程序,当输入 3.14时,运行结果为?( )

a=input(str())r=3pi=float(a)print(pi*r**2)
  • A.3
  • B.3.14
  • C.18.84
  • D.28.26解析:代码计算圆的面积,公式为S=πr²;3.14×3²=3.14×9=28.26。

22. 有如下两行代码,运行后打印出的结果是?( )

a = [1,2,3,4,3,2,3,4,2,1,4]print(list(set(a)))
  • A.[1,2,3,4,3,2,3,4,2,1,4]
  • B.{[1,2,3,4,3,2,3,4,2,1,4]}
  • C.[1,2,3,4]
  • D.{[1,2,3,4]}解析:set()将列表转为集合,自动去重;list()再将集合转回列表,结果为无重复的[1,2,3,4]。

23. 已知c=[1,3,5,7,9,11],max(c)+min(c)的值为?( )

  • A.0
  • B.1
  • C.11
  • D.12解析:max(c)取列表最大值11,min(c)取列表最小值1,11+1=12。

24. 在Python中,运行print(list(range(2,10,3)))的结果是?( )

  • A.[2,3,4,5,6,7,8,9]
  • B.[2,3,4,5,6,7,8,9,10]
  • C.[2, 5, 8]
  • D.(2,5,8)解析:range(起始,终止,步长),终止值不包含;2+3=5,5+3=8,8+3=11(超出10),结果为[2,5,8],list()转为列表。

25. 在Python中,'str'表示什么类型?( )

  • A.整数
  • B.列表
  • C.元组
  • D.字符串解析:Python中,str是字符串类型的标识,int为整数,list为列表,tuple为元组。

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

26. CSV文件必须使用逗号分隔数据元素,否则无法正确解析。( )

错误解析:CSV文件默认用逗号分隔,也可使用空格、分号等分隔符,解析时指定分隔符即可正确读取。

27. s=[['张三','86','90','92'],['李四','93','97','95'],['王五','89','98','99']],获取王五同学的第2门成绩数据,用s[2][2],对吗?( )

正确解析:s[2]获取王五的成绩列表['王五','89','98','99'],s[2][2]获取该列表中第2门成绩98。

28. 二维数据存储为CSV文件时,每行数据需用换行符分隔。( )

正确解析:CSV文件的存储规则为,每行表示一个一维数据,不同行之间用换行符分隔。

29. 二进制中的10和十六进制中的10是相等的。( )

错误解析:二进制中的10转换为十进制是2,十六进制中的10转换为十进制是16,二者数值不相等。

30. 对于一个二进制数,末位增加一个0,其值扩大2倍。( )

正确解析:二进制的位权为2的幂次,末位加0相当于整体乘以2,如二进制1(十进制1),末位加0为10(十进制2),值扩大2倍。

31. 下面这段代码能正常运行吗?( )

whileTrue :    a = input('请输入一个整数,若不是整数将会让你重新输入:  ' )try:        b = int(a)except:        print('你输入的不是整数!将返回重输。')else:        print('你输入的是整数,程序结束。')break

正确解析:代码利用try-except-else异常处理机制,非整数输入触发except并重新循环,整数输入执行else并break结束循环,可正常运行。

32. 在Python中,chr(48) 函数返回值为对应的ASCII字符。( )

正确解析:chr(x)函数的作用是返回整数x对应的ASCII字符,参数x在0≤x≤255范围内即可,chr(48)返回ASCII字符'0'。

33. 下列程序运行结果为4和3.1416,对吗?( )

a=int('100',2)b=3.1415926r=round(b,4)print(a)print(r)

正确解析:int('100',2)将二进制100转为十进制,结果为4;round(b,4)将b保留4位小数,四舍五入后为3.1416。

34. 在Python中,sum([1,2,3]) 和 sum(range(1,4)) 相等。( )

正确解析:sum([1,2,3])直接求和结果为6;range(1,4)生成序列[1,2,3],sum(range(1,4))求和结果也为6,二者相等。

35. 在Python语言中,print(sorted([6,3,5,9,2,1]))的返回结果是 [1, 2, 3, 5, 6, 9]。( )

正确解析:sorted()函数会对列表进行升序排序,并返回新的排序后的列表,对[6,3,5,9,2,1]排序后结果为[1,2,3,5,6,9]。

三、编程题(共3题,共30分)

36. 鲜花数据处理(8分)

题目要求

校园花坊采购一批鲜花,数据存储在文件 “flower.csv”,数据包含花名、数量、价格三列。编写代码读取文件信息,输出价格达到20的花名及总价,补全以下代码。

待补全代码

import csvwith open("/data/        ①        ") as f:    rows = list(csv.reader(f))for row in rows[1:]:if (         ②         >= 20):            print( row[0],int(row[1])*int(row[2]))

参考代码

import csvwith open("/data/flower.csv") as f:    rows = list(csv.reader(f))for row in rows[1:]:if (int(row[2]) >= 20):            print( row[0],int(row[1])*int(row[2]))

答案与评分

  • ① flower.csv(2分)
  • ② int(row[2])(2分,缺int()得1分)解析:①需填写正确的文件名;②row[2]为价格列,读取的是字符串类型,需转成整数后再做数值判断。

37. 冒泡排序(10分)

题目要求

补全以下冒泡排序代码,实现对列表[8,4,2,11,3,9]的升序排序。

待补全代码

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)

参考代码

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

答案与评分

  • ① n-1(2分)
  • ② n-i-1(4分)
  • ③ j+1(4分)解析:冒泡排序外层循环控制排序轮数,共需n-1轮;内层循环控制每轮的比较次数,每轮结束后末尾i个元素已有序,故比较次数为n-i-1;每次比较相邻的两个元素a[j]和a[j+1],逆序则交换。

38. 选择排序(12分)

题目要求

补全以下代码,利用选择排序对n位同学的成绩降序排序,并输出排第3名的同学的成绩。 输入示例: 6 80 90 90 92 88 92 输出示例:90

待补全代码

n=int(        ①        )fenlist=[]for i in range(n):       fen=input()     fenlist.append(        ②        )for i in range(        ③        ):      k=i     for j in range(i+1,n):   if         ④        :            k=jif k!=i:        fenlist[k],fenlist[i]=fenlist[i],fenlist[k]print(        ⑤        )

参考代码

n=int(input())fenlist=[]for i in range(n):       fen=input()     fenlist.append(int(fen))#选择法排序(降序)for i in range(0,n-1):       k=ifor j in range(i+1,n):if fenlist[k]<fenlist[j]:            k=jif k!=i:        fenlist[k],fenlist[i]=fenlist[i],fenlist[k]print(fenlist[2])

答案与评分

  • ① input()(3分)
  • ② int(fen)(3分,写fen得2分)
  • ③ 0,n-1(4分)
  • ④ fenlist[k]<fenlist[j](3分)
  • ⑤ fenlist[2](3分)解析:①读取同学人数,需用input()获取输入;②成绩为数值类型,需将输入的字符串转整数;③选择排序外层循环执行n-1轮;④降序排序需找到当前区间的最大值,故判断fenlist[k]<fenlist[j];⑤列表索引从0开始,第3名对应索引2。

纸质版真题已经整理好⬇️⬇️⬇️

答案可方便批改试卷,此真题也可用于202603Python四级备考,需要真题和试卷的小伙伴请加我
我建了一个少儿编程交流群,欢迎加入交流!!!
大家可以扫码加入⬇️⬇️⬇️(如果二维码过期请关注我后台留言我重新给你发二维码)
后续会不定期分享真题,关注我不迷路!!!

最新文章

随机文章