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

标签:
普通文字版答案
2024-11-01
| 10页
| 127人阅读
| 1人下载

内容正文:

青少年软件编程(Python)等级考试试卷(三级) 202403真题与解析 分数:100  题数:37 测试时长:60分钟 1、 单选题(共25题,共50分) 1.在 Python 中,hex(2023)的功能是?( ) A.将十进制数 2023 转化为十六进制数 B.将十进制数 2023 转化为八进制数 C.将十六进制数 2023 转化为十进制数 D.将八进制数 2023 转化为十进制数 2.下列表达式的值与其他三个选项不相等的是哪一个?( ) A.(A)16 B.(11)8 C.(10)10 D.(1010)2 3.下列说法错误或值为 False 的是?( ) A.将十进制数转化为八进制数的方法是除以 8 取余,逆序输出 B.(8)16>(8)10 C.(45)10=4×101+5×100 D.八进制数 15 对应的十进制数为 13 4.下面选项中最大的数是?( ) A.(37)8 B.(11111)2 C.(1F)16 D.(32)10 5.关于下列代码,说法正确的是?( ) try: a = int(input('输入一个数:')) b = int(input('输入另一个数:')) m = a / b print('结果是', m) except: print('其他错误!') except ValueError: print('输入的不是数字!') A. 输入的都是数字,且 b 为非 0 整数时,执行 try 后面的语句 B. B.输入的有非数字时,执行 except ValueError 后面的语句 C.输入的 b 为 0 时,执行 except 后面的语句 D.第 6 行代码只能出现在 try-except 代码块的最后,所以代码书写有误,不能运行 6.下列代码的运行结果是?( ) for i in range(2): try: a = 5 % i except: print('&&&&&') else: print('@@@@@') finally: print('*****') A.@@@@@ ***** @@@@@ ***** B.&&&&& ***** @@@@@ ***** C.&&&&& ***** &&&&& ***** D.&&&&& @@@@@ ***** 7.下面程序使用的 with 语句打开文件,处理结束后会?( ) c=['老虎','狗','狮子','大象','狼'] with open('动物.csv','w') as f: f.write(','.join(c)+' ') A.自动读取 动物.csv 文件 B.自动写入 动物.csv 文件 C.自动打开 动物.csv 文件 D.自动关闭 动物.csv 文件 8.与下列程序实现的功能一样的是?( ) with open('动物.csv','r') as f: h=f.read().strip().split(',') print(h) A.f=open('动物.csv','r') h=f.read().split(',').strip() f.close() print(h) B.f=open('动物.csv','r') h=f.read().strip().split(',') f.close() print(h) C.f=open('动物.csv','r') h=f.read().strip().split(',') print(f) D.f=open('动物.csv','r') h=f.read().split(',').strip() f.close() print(f) 9.关于语句 with open('d:/stu.csv'.'r') as f,下列描述不正确的是?( ) A.如果文件 stu.csv 不存在,会创建 stu.csv B.以只读方式打开文件 C.f 是变量名 D.程序处理完毕,会自动关闭 stu.csv 10.有关 Python 文件常用读写方式的描述,错误的是?( ) A.read() 每次读取整个文件 B.read() 生成的文件内容是一个列表 C.readline() 每次只读取文件的一行 D.readlines() 每次按行读取整个文件内容,将读取到的内容放到一个列表中 11.关于语句 f=open(r"c:\计算.txt",'w'),下列描述不正确的是?( ) A.f 是变量 B.'w'以写方式打开文件 C.如果文件“计算.txt”不存在,不会报错 D.如果文件“计算.txt”内原来有内容,将不会被覆盖 12.小明用插入排序算法,编写了如下代码,对列表 arr 中的数值进行排序,请问,代码中红色①处,应填写什么代码?( ) arr = [9, 3, 7, 5, 1, 6, 8, 4, 2] for i in range(1, len(arr)): key = arr[i] j = i-1 while j >=0 and key < arr[j] : arr[j+1] = ① j = j - 1 arr[j+1] = key print ("排序后的数组:",arr) A.arr[i] B.arr[j-1] C.arr[i+1] D.arr[j] 13.列表 a 中全是整数,小明想将其中所有奇数都增加 1,偶数不变,于是编写了如下代码。请问红色①处,代码应该是?( ) a = [1,2,3,4,5,6,7,8,9,10] for x in range(len(a)): if ① != 0: a[x] = a[x]+1 print(a) A.a[x] /2 B.a[x] ^ 2 C.a[x] *2 D.a[x] % 2 14.小明用冒泡排序算法编写了一段程序,请问程序中红色标记的①处,应该填写什么代码?( ) a = [8,4,2,11,3,9] n = len(a) for i in range(0, n): for j in range(0, n-i-1 ): if a[j]>a[ ① ]: a[j],a[j+1] = a[j+1],a[j] print(a) A.j-1 B.j+1 C.n-1 D.n+1 15.divmod(-10,3)返回值是?( ) A.(-3,1) B.(-4,2) C.(-4,-2) D.(-3,-1) 16.下列代码的结果是?( ) set_a = set('happy') set_b = set('java') set_c = set_a-set_b c = list(set_c) print(c) A.{'h', 'p', 'y'} B.['a'] C.['v', 'y', 'h', 'p', 'j', 'a'] D.['y', 'h', 'p'] 17.给定列表 nums = [1, 2, 3, 4, 5, 6],以下哪个选项返回 True?( ) A.not all(nums) B.any(nums) C.not (all(nums) and any(nums)) D.not (all(nums) or any(nums)) 18.在 Python 中 print(tuple(range(0,8,3)))语句,执行的结果是?( ) A.(0,3,6) B.(0,2,4,6) C.(0,2,4,6) D.(0,4) 19.下列关于 map()函数的代码,其运行结果是?( ) res=map(str,[3, 6, 8, 4, 5]) print(list(res)) A.'36845' B.[3, 6, 8, 4, 5] C.[6, 12, 16, 8,10] D.['3', '6', '8', '4', '5'] 20.下列程序运行结果是?( ) a=int(min("2345")) b=int(max("14693")) c=b+a print(c) A.11 B.243 C.729 D.6561 21.以下哪个函数可以将字符转换为 ASCII 码?( ) A.ascii() B.ord() C.chr() D.encode() 22.以下哪个值在 bool 函数中会被解释为 False?( ) A.0 B.1 C.-1 D.-2 23.以下哪个选项描述了 abs()函数的返回值类型?( ) A.int B.float C.bool D.不确定,取决于输入参数类型 24.给定一个整数列表 nums,如何使用 sum 函数计算列表中所有元素的和,并返回结果?( ) A.sum(nums) B.sum[nums]C.sum(nums,[]) D.sum(nums,()) 25.以下哪个选项描述了程序的输出结果?( ) fruits = ['apple', 'banana', 'orange'] for i, fruit in enumerate(fruits): print(i, fruit) A.(0, 'apple') (1, 'banana') (2, 'orange') B.apple 0 banana 1 orange 2C.0 apple 1 banana 2 orange D.('apple', 0) ('banana', 1) ('orange', 2) 二、判断题(共10题,共20分) 26.十六进制 3C 转换成八进制为 74。( ) 27. 异常处理结构中,如果 try 程序段中出现了运行错误的语句,那么每一个 except 程序段都会被运行。( ) 28.下面程序,将产生一个“动物.csv” 的文件。( ) c=['老虎','狗','狮子','大象'] f=open('动物.csv','w') f.write(','.join(c)+' ') f.close() 29.使用 open()函数打开'food.csv'文件后,返回的是元组。( ) 30.f=open(r"c:\字符串.txt",'w') f.write('Eden Orion Phoenix ') f.close() 上面的程序,能在原来文件的基础上添加三行字符串。( ) 31. abs()函数的功能是获取参数的绝对值,例如 abs(-3.14)的运行结果是-3。() 32. print(type({"name":"Alice","age":25})==dict)结果为 True。( ) 33. format()函数可以指定变量的类型、精度、对齐方式等格式选项,从而生成不同的字符串,如:"{:.2f}".format(3.1415926)的结果为"3.14"。( ) 34. 使用 open()函数打开一个已存在的文件时,如果指定的模式为"w",则会清空该文件中的内容。( ) 35. 二进制数在末尾加个“0”,等于这个数乘以 2。( ) 三、编程题(共3题,共30分) 36.整数问题 给定一个十进制整数 n,求出从 1 到 n 的所有整数中出现“1”的个数。 例如,n=2 时,1,2 出现 1 个“1”。 n=12 时,1,2,3,4,5,6,7,8,9,10,11,12,出现 5 个“1”。 现编写一个程序,实现如下功能:输入整数 n,执行程序后,输出该范围内出现“1”的个数。请完善程序。 n=int(input('请输入整数:')) ① i=1 while ② :x=i while x>0: if ③ : count=count+1 x//=10 ④ print(n,'范围内 1 的个数有:',count) 37.偶数排序 下列程序将数列中的偶数按从小到大顺序输出,请你补全代码。 def even(x): return x%2==0 #自定义函数 even,判断 x 是否为偶数 c=[3,7,1,18,9,12,5,2,22,10] n= ① h=[] for i in ② : for j in range(0,n-i-1): if ③ : c[j],c[j+1]= ④ for i in range(0,n-1): h=filter( ⑤ ,c) ans=list(h) print(ans) 38.食堂问卷调查 学校食堂为了提高服务质量,让老师和同学们更好地投入工作和学习,对同学们开展了问卷调查,调查项目共 5 项(即 5 个问题),每个项目有 A、B、C 三个选项,同学们每题可选一项,学校后勤管理的李老师对调查结果进行了收集整理,并存放在"myd.csv"文件中(部分数据如图所示),现在需要分析同学们对这 5 个项目的答题情况,统计出每个项目选"A"的情况。李老师用 Python编写了以下代码,输出结果如下图,请你完善划线处。 import csv with open("/data/ ① ")as f: cont=list(csv.reader(f)) qk={"第 1 题":0,"第 2 题":0,"第 3 题":0,"第 4 题":0,"第 5 题":0} for row in cont[ ② ]: for i in range( len(row)): if row[i]== ③ : qk["第"+str(i+1)+"题"]+=1 for i in range(5): print("第"+str(i+1)+"题选 A 的人数为:"+str(qk["第"+str(i+1)+"题"])) 参考答案及解析: 一、单选题 1. 答案:A - 解析:hex(2023)的功能是将十进制数2023转化为十六进制数。 2. 答案:B - 解析:把选项全部转换成十进制,所以本题目选择 B。 A:(A)16 =(10)10 B:(11)8 =(9)10 C:(10)10 =(10)10 D:(1010)2 =(10)10 3. 答案:B - 解析:进制转换,(8)16=(8)10 4. 答案:D - 解析:分别将选项中的数转化为十进制进行比较。(37)8 = 3×81 + 7×80 = 31;(11111)2 = 1×24 + 1×23 + 1×22 + 1×21 + 1×20 = 31;(1F)16 = 1×161 + 15×160 = 31;(32)10 = 32。所以最大的是(32)10。 5. 答案:A - 解析:当输入的都是数字,且b为非0整数时,程序正常执行try后面的语句;输入的有非数字时,会触发ValueError异常,执行except ValueError后面的语句;输入的b为0时,会触发ZeroDivisionError异常,执行第一个except后面的语句;except ValueError可以出现在第一个except后面,代码没有错误,可以运行。 6. 答案:B - 解析:当 i = 0 时,5 % 0 会引发 ZeroDivisionError 异常,进入 except 块,打印 &&&&&,然后执行 finally 块,打印 *****。当 i = 1 时,5 % 1 = 0,没有异常发生,执行 else 块,打印 @@@@@,然后执行 finally 块,打印 *****。 7. 答案:D - 解析:with语句在处理结束后会自动关闭文件。 8. 答案:B - 解析:与原代码功能一样的是B选项,打开文件,读取文件内容,去除两端空白符,按逗号分割成列表,关闭文件,最后打印列表。A选项中strip()位置错误;C选项最后打印的是文件对象而不是列表;D选项中strip()位置错误且最后打印的是文件对象。 9. 答案:A - 解析:如果文件stu.csv不存在,以只读方式打开文件时会报错,不会创建文件。以'w'模式打开文件且文件不存在时才会创建文件。 10. 答案:B - 解析:read()每次读取整个文件,生成的文件内容是一个字符串,不是列表;readline()每次只读取文件的一行;readlines()每次按行读取整个文件内容,将读取到的内容放到一个列表中。 11. 答案:D - 解析:'w'以写方式打开文件,如果文件“计算.txt”不存在,不会报错;如果文件存在,原来的内容会被覆盖。 12. 答案:D - 解析:在插入排序算法中,当找到合适的位置插入元素时,需要将大于当前元素的元素向后移动一位,所以应该填写arr[j]。 13. 答案:D - 解析:判断一个数是否为奇数可以用对2取余是否为0,即a[x] % 2!= 0表示a[x]是奇数。 14. 答案:B - 解析:在冒泡排序算法中,比较相邻两个元素时,如果a[j]>a[j+1],则交换它们的位置,所以应该填写j+1。 15. 答案:B - 解析:divmod(-10,3)返回商和余数组成的元组,-10除以3商-3余-1,但实际上是商-4余2。 16. 答案:D - 解析:set_a - set_b表示在set_a中但不在set_b中的元素,set('happy') - set('java') = {'h', 'p', 'y'},再转换为列表为['y', 'h', 'p']。 17. 答案:B - 解析:nums = [1, 2, 3, 4, 5, 6],all(nums)为True,any(nums)为True。A选项not all(nums)为False;B选项any(nums)为True;C选项not (all(nums) and any(nums))为False;D选项not (all(nums) or any(nums))为False。 18. 答案:A - 解析:range(0, 8, 3)生成0、3、6三个数的序列,tuple(range(0, 8, 3))转换为元组(0, 3, 6)。 19. 答案:D - 解析:map(str, [3, 6, 8, 4, 5])将列表中的元素转换为字符串,list(res)将结果转换为列表,得到['3', '6', '8', '4', '5']。 20. 答案:A - 解析:int(min("2345")) = 2,int(max("14693")) = 9,c = b + a = 9 + 2 = 11。 21. 答案:B - 解析:ord()函数可以将字符转换为 ASCII 码;ascii()函数返回一个可打印的字符串,展示对象的 ASCII 值;chr()函数根据 ASCII 值返回对应的字符;encode()函数用于将字符串编码为字节序列。 22. 答案:A - 解析:在bool函数中,0被解释为False,非零值被解释为True。 23. 答案:D - 解析:abs()函数的返回值类型取决于输入参数的类型,如果输入是整数,返回整数;如果输入是浮点数,返回浮点数。 24. 答案:A - 解析:sum函数用于计算可迭代对象中所有元素的和,使用sum(nums)可以计算列表nums中所有元素的和。 25. 答案:C - 解析:enumerate(fruits)会生成一个可迭代的对象,包含索引和元素值,依次输出索引和对应元素,结果是0 apple、1 banana、2 orange。 二、判断题 26. 答案:对 - 解析:十六进制3C转化为十进制是60,60转化为八进制是74。 27. 答案:错 - 解析:如果try程序段中出现了运行错误的语句,会根据异常的类型匹配相应的except程序段执行,不是每一个except程序段都会被运行。 28. 答案:对 - 解析:代码以写入模式打开文件,将列表中的元素用逗号连接后写入文件并加上换行符,会产生一个“动物.csv”的文件。 29. 答案:错 - 解析:使用open()函数打开'food.csv'文件后,返回的是文件对象,不是元组。 30. 答案:错 - 解析:f=open(r"c:\字符串.txt",'w')会以写入模式打开文件,如果文件不存在会创建新文件,如果文件存在会清空原有内容再写入,不是在原来文件的基础上添加三行字符串。 31. 答案:错 - 解析:abs(-3.14)的运行结果是3.14,不是-3。 32. 答案:对 - 解析:type({"name":"Alice","age":25})返回的是dict类型,与dict进行比较结果为True。 33. 答案:对 - 解析:format()函数可以指定变量的类型、精度、对齐方式等格式选项,"{:.2f}".format(3.1415926)将3.1415926格式化为保留两位小数的字符串"3.14"。 34. 答案:对 - 解析:使用open()函数打开一个已存在的文件时,如果指定的模式为"w",则会清空该文件中的内容。 35. 答案:对 - 解析:二进制数在末尾加个“0”,相当于乘以2。 三、编程题 36.参考答案: 参考程序: n = int(input('请输入整数:')) count = 0 i = 1 while i <= n: x = i while x > 0: if x % 10 == 1: count = count + 1 x //= 10 i += 1 print(n,'范围内 1 的个数有:',count) 评分标准: (1)count=0 或等效答案;(2 分) (2)i<=n 或等效答案;(2 分) (3)x%10==1 或等效答案;(3 分) (4)i=i+1 或等效答案。(3 分) 解析: 1. 首先初始化计数变量`count`为 0。 2. `i <= n`确保遍历从 1 到`n`的所有整数。 3. 判断当前数字的个位是否为 1,如果是则增加计数。 4. `i += 1`用于遍历下一个整数。 37.参考答案: 参考程序: def even(x): return x % 2 == 0 # 自定义函数 even,判断 x 是否为偶数 c = [3, 7, 1, 18, 9, 12, 5, 2, 22, 10] n = len(c) h = [] for i in range(n-1): for j in range(0, n - i - 1): if c[j]) > c[j + 1]: c[j], c[j + 1] = c[j + 1], c[j] for i in range(0, n - 1): h = filter(even, c) ans = list(h) print(ans) 试题解析: (1)len(c) 或等效答案;(3 分) (2)range(0,n-1) 或等效答案;(3 分) (3)c[j]>c[j+1] 或等效答案;(3 分) (4)c[j+1],c[j] 或等效答案;(3 分) (5)even 或等效答案。(4 分) 解析: 1. len(c):获取列表`c`的长度,以便后续进行循环控制。 2. range(n-1):对列表进行遍历排序,需要遍历整个列表长度的次数。 3. c[j]) > c[j + 1]:判断当前元素与下一个元素的大小,实现将偶数按从小到大顺序排列。 4. c[j + 1], c[j]:交换两个元素的位置。 5. even:在`filter`函数中使用自定义函数`even`来筛选出偶数。 38. 参考答案: 参考代码 import csv with open("/data/myd.csv")as f: cont=list(csv.reader(f)) qk={"第 1 题":0,"第 2 题":0,"第 3 题":0,"第 4 题":0,"第 5 题":0} for row in cont[1:]: # 从第二行开始遍历数据,跳过标题行 for i in range(len(row)): if row[i]=='A': # 判断选项是否为 A qk["第"+str(i+1)+"题"]+=1 for i in range(5): print("第"+str(i+1)+"题选 A 的人数为:"+str(qk["第"+str(i+1)+"题"])) 试题解析: (1)myd.csv 或等效答案;(1 分) (2)cont[1:]等效答案;(1 分) (3)'A'或者"A" 或等效答案。(2 分) 解析: 1、 补上文件名myd.csv,具体文件名应根据实际情况填写。 2、cont[1:]表示从列表的第二行开始遍历,因为第一行通常是标题行,不包含实际的调查数据。 3、'A'用于判断当前选项是否为 A,如果是则对应的题目的计数加一。 学科网(北京)股份有限公司 $$

资源预览图

13 202403青少年软件编程(Python)等级考试试卷(三级)
1
13 202403青少年软件编程(Python)等级考试试卷(三级)
2
13 202403青少年软件编程(Python)等级考试试卷(三级)
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。