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

标签:
普通文字版答案
2024-11-01
| 14页
| 99人阅读
| 2人下载

内容正文:

青少年软件编程(Python)等级考试试卷(三级) 202206真题与解析 分数:100  题数:37 测试时长:60分钟 一、单选题(共25题,共50分) 1.如下所示的2行代码,最后print()函数打印出来的结果是?( ) c = [['赵大',21,'男','北京'],['钱二',20,'男','西安'],['孙三',18,'女','南京'],['李四',20,'女','杭州']] print(c[1][3]) A. 男 B. 北京 C. 西安 D. 女 2.要读取下图“书目.csv”文件的全部内容,小明编写了后面4行代码。请问,红色①处,应该填写哪种打开模式?( ) f = open("书目.csv" , ① ) a = f.read() print(a) f.close A. "w" B. "a" C. "r" D. "a+" 3.下图所示,有一个名为"书目.csv"的文件。小明针对这个文件编写了5行代码,请问,代码运行到最后打印在屏幕上的结果是?() with open('书目.csv', 'r', encoding='utf-8') as f:     for line in f.readlines():         a = line.split(",")         if a[0] == "水浒传" :             print(a[1]) A. 老残游记 B. 172 C. 55 D. 70 4.小明编写了下列4行代码,请问,代码运行到最后,屏幕上打印出来的结果是?( ) a = ['a','b','c'] b = [1,2,3] c = [b,a] print(c[1][0]) A. 1 B. a C. '1' D. 'a' 5.下图左边的“身体素质.csv”文件,要打印成下图右边的效果,每个字段之间相隔一个TAB键的距离。小明编写了如下代码,请选择:代码中横线处的内容?() f = open('身体素质.csv', 'r') a = [] for i in f:     a.append(i.strip(' ').split(',')) f.close for x in a:     line=''     for y in x:         line += '{ }    '.format(y)     print(line) A. \t B. C. \a D. \r 6.在Python异常处理结构中,如果程序执行没有遇到异常(错误),不会执行什么关键字后面的语句体?( ) A. try B. except C. else D. finally 7.运行下列程序,输出的结果是?() try:     a=int(input())     b=int(input())     r=a/b     print('商是:',r) except:     print('错误') else:     print('正确') finally:     print('结束') 当输入: 16 8 A. 错误 B. 商是: 2.0 正确 C. 商是: 2 正确 结束 D. 商是: 2.0 正确 结束 8.Python中将十进制20转化成八进制,我们可以使用下列哪个表达式?( ) A. bin(20) B. int(20) C. oct(20) D. hex(20) 9.下列进制转换,正确的是?() A. 0x14转化为十进制,结果是20。 B. 20转化成八进制,结果是0o20。 C. 0x14转化为十进制,结果是22。 D. 20转化成八进制,结果是0o30。 10.关于二进制、八进制、十六进制与十进制相互转换,下列说法正确的是?() A. 十六进制转化为十进制,可以使用除16求余数,再顺序输出。 B. 二进制转化为十进制,可以使用除2求余数,再逆序输出。 C. 十六进制转化为十进制,可以使用除16求余数,再逆序输出。 D. n位二进制能表示的最大十进制数是2的n次方减一。 11.将十进制2022转化成十六进制,可以使用下列哪个表达式?( ) A. bin(2022) B. int(2022) C. oct(2022) D. hex(2022) 12.abs(-4.8)运行的结果是?( ) A. 4.8 B. -4 C. -5 D. 5 13.关于ord( )函数与chr( )函数,下列说法正确的是?() A. ord( )函数的参数是整数。 B. ord( )函数的参数是字符串类型。 C. chr( )函数的参数是字符串类型。 D. chr( )函数返回的数据类型是int。 14.运行下列程序,输出的结果是?() a=[34,7,8,23] max(a)+abs(-5) A. 12 B. 13 C. 18 D. 39 15.set('小明你好')运行的结果是?( ) A. ['好', '你', '明', '小'] # 列表中,文字顺序不固定 B. ('好', '你', '明', '小') #元组中,文字顺序不固定 C. {'好', '你', '明', '小'} #集合中,文字顺序不固定 D. {'你', '好', '小', '明'} #文字顺序固定 16.如下程序: a=[5,10,32,7]   for i in a:       print(i,”:”,bin(i)) 该程序段的功能是?( ) A. 分别输出5,10,32,7的二进制数。 B. 分别输出5,10,32,7的八进制数。 C. 分别输出5,10,32,7的在列表中的索引位置。 D. 分别输出5,10,32,7的十六进制数。 17.下列表达式的值最大的选项是?() A. len([1,2,3,4,5,789]) B. max([78,6,5,67] ) C. abs(-90) D. round(38.4) 18.divmod(6,2)的运行结果是?() A. 8 B. 4 C. (3,0) D. (0,3) 19.如果不知道对象的数据类型,我们可以使用什么函数查看?() A. type() B. dir() C. set() D. help() 20.运行下列程序,输出的结果是?( ) x=7 print(eval(“x+4”)) A. 输出”x+4” B. 输出数字11 C. 输出“7+4” D. 程序出错 21.关于enumerate()函数的说法不正确的是?() A. 该函数是Python内置函数。 B. 该函数可用于判断数据类型是否是数值类型。 C. 该函数可将一个可遍历对象按照设置的序号组合成一个索引序列。 D. 该函数通常用在for循环中,可返回一个内部由一个个元组组成的列表。 22.enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列。下列程序 example = '7890' for i,j in enumerate(example):     print(i,j) 运行后的输出结果是?() A. 0,7 1,8 2,9 3,0 B. (0 7) (1 8) (2 9) (3 0) C. 0 7 1 8 2 9 3 0 D. (0,7) (1,8) (2,9) (3,0) 23.关于算法描述的三种基本结构,下列哪项正确?( ) A. 顺序结构、选择结构、循环结构。 B. if选择结构、for循环、while循环。 C. 处理框、判断框、流程线。 D. 自然语言、流程图、程序设计语言。 24.“韩信点兵”是一个古老的数学问题,可以应用中国剩余定理进行求解。以下是使用计算机解决“韩信点兵”问题的几个步骤: ①编写Python程序,用计算机进行处理。 ②设计“韩信点兵”求解算法。 ③验证算法的功能和性能。 ④分析问题,确定解题任务。 使用计算机解决“韩信点兵”问题,正确的步骤是下列哪一项?() A. ②④①③ B. ④①②③ C. ④②③① D. ④②①③ 25.小明使用Python编程模拟绘制了物体在自由落体运动过程中产生的抛物线轨迹。小明设计的这一算法属于下列哪一种?() A. 枚举算法 B. 解析算法 C. 排序算法 D. 对分查找算法 二、判断题(共10题,共20分) 26.小明编写了代码一,小红看到后说:“我写的代码二,打印出来的结果与小明的代码一相同”。请判断,小红所说对吗?( ) 代码一: f = open('成绩.csv', 'r') for i in f:     a = i.strip(' ').split(',')     print(a) f.close 代码二: f = open('成绩.csv', 'r') a = [] for i in f:     a.append(i.strip(' ').split(',')) f.close print(a) 27.有一个名为“身体素质.csv”的文件,内容为学生的姓名、身高和体重,文件内容如下: 李四,127,32 王五,131,34 赵六,129,33 小明想编写代码,在整个文件的首行,插入数据“张三,133,36”,他编写了如下代码,请判断,代码能正确运行吗?( ) f = open('身体素质.csv', 'a') f.seek(0,0)  #用seek()方法,将文件指针移动到整个文件的最前面。 f.write('张三,133,36 ') f.close() 28.使用异常处理的方式执行程序时,当try里面的程序出现数据类型输入错误时,执行except ZeroDivisionError下面的语句;当try里面的程序出现除数为零的错误时,执行except ValueError下面的语句。() 29.八进制数0o10转化成十六进制数为0x8。( ) 30.执行代码print(type(0x20)),运行结果是<class 'int'>。( ) 31.divmod()函数执行结果是返回一个包含商和余数的元组。( ) 32.all()函数用于判断给定的可迭代参数中的所有元素是否都为False,若是返回True,否则返回False。() 33.any()函数用于判断给定的可迭代参数中的所有元素是否都为True,若是返回True,否则返回False。() 34.具有查看函数或模块说明功能的函数是help()。( ) 35.小明编写了如下所示的3行代码 : list1 = ['赵','钱','孙','李','周','吴','郑','王'] print(list1[1:-4]) print(list1[1:4]) 小红看到代码后说:“小明,你这代码第2行与第3行,两次运行的print()函数,结果完全相同呀。” 请判断,小红所说,是否正确?( ) 三、编程题(共3题,共30分) 36.小明用冒泡排序算法编写了一段代码,请帮他把代码中红色标记的①②③处,补充完整。 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) 37.下面程序,按字典序列统计出单词的个数,执行结果如下: are:2 first:2 happy:1 is:3 your:2 请补全下列代码中的①②③④四处。 a=['is','happy','is','your','are','first','first','is','are','your'] n=len(a)-1 for i in range(0,n):     for j in range(i+1,n+1):         if a[i]>a[j]:                 ____①____ key=a[0] i=1 ans=1 while i<=n:     if key==a[i]:             ____②_____         i+=1     else:         print(a[i-1]+':'+str(ans))         key=a[i]             ____③_____            i+=1        ____④____      38.请读取文件"cj.csv"的数据,数据内容如下图所示: 下列代码实现了读取“姓名”和“体质测试”信息,输出“体质测试”考核为A的数量(大于等于85分)并显示相应同学姓名,请你补全代码。 import csv with open('cj.csv') as f:      rows = list(___①____)      n=0      for row in rows[1:]:         if ___②___:             print(row[0])             n+=1 print(n) 参考答案与解析 一、单选题 1. C - `c`是一个二维列表,`c[1][3]`表示取第二行(索引为1)的第四个元素(索引为3),即“西安”。 2. C - 要读取文件内容,应该使用“r”(只读模式)打开文件。 3. D - 本题考查学生对列表切片中,每个数据位置的理解 。此题中的a[1],应该对应水浒传的价格,所以正确答案是70。 4. B - `c = [b,a]`,`c[1]`是`a`,`c[1][0]`是`'a'`,print(‘a’)结果为a,选B。 5. A - 在格式化字符串中,`\t`表示制表符(TAB键的距离)。 6. B - 如果程序执行没有遇到异常,不会执行`except`后面的语句体。 7. D - 输入16和8,计算结果正确,会依次执行`try`块中的代码、`else`块中的代码和`finally`块中的代码,输出“商是: 2.0 正确 结束”。 8. C - `oct(20)`将十进制数20转换为八进制。 9. A - `0x14`是十六进制数,转换为十进制是20。20转化成八进制是`0o24`。 10. D - n位二进制能表示的最大十进制数是$2^{n}-1$。十六进制转化为十进制是通过位权展开法,不是除16求余数;二进制转化为十进制是通过位权展开法,不是除2求余数且逆序输出。 11. D - `hex(2022)`将十进制数2022转换为十六进制。 12. A - `abs(-4.8)`返回`-4.8`的绝对值4.8。 13. B - `ord()`函数的参数是字符串类型,返回对应的 ASCII 值;`chr()`函数的参数是整数类型,返回对应的字符。 14. D - `a=[34,7,8,23]`,`max(a)`是34,`abs(-5)`是5,两者相加为39。 15. C - `set('小明你好')`将字符串转换为集合,集合中的元素无序且不重复,即`{'好', '你', '明', '小'}`。 16. A - `bin(i)`是将整数`i`转换为二进制表示,所以程序分别输出5,10,32,7的二进制数。 17. C - `len([1,2,3,4,5,789])`结果是6;`max([78,6,5,67])`结果是78;`abs(-90)`结果是90;`round(38.4)`结果是38。 18. C - `divmod(6,2)`返回商和余数组成的元组,即`(3,0)`。 19. A - `type()`函数可以查看对象的数据类型。 20. B - `eval("x+4")`将字符串中的表达式进行求值,此时`x`的值为7,所以结果是11。 21. B - `enumerate()`函数不能用于判断数据类型是否是数值类型。 22. C - enumerate()函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标。 23. A - 算法描述的三种基本结构是顺序结构、选择结构、循环结构。 24. D - 使用计算机解决问题的步骤通常是分析问题确定解题任务,设计算法,编写程序,验证算法的功能和性能。 25. B - 模拟绘制物体自由落体运动的抛物线轨迹可以使用解析算法,通过数学公式来计算每个点的位置。 二、判断题 26. 错误 - 代码一直接在循环中打印每行数据,代码二是将所有数据读取到列表中,最后打印整个列表,结果形式不同。 27. 错误 - 以“a”模式打开文件是追加模式,不能在文件首行插入数据,并且`seek(0,0)`在追加模式下可能不会起到预期的作用。 28. 错误 - 当try里面的程序出现数据类型输入错误时,执行`except ValueError`下面的语句;当try里面的程序出现除数为零的错误时,执行`except ZeroDivisionError`下面的语句。 29. 正确 - 八进制数\(0o10\)转化为十进制为\(8\),十进制数\(8\)转化为十六进制为\(0x8\),答案是正确。30. 正确 - `0x20`是十六进制整数表示法,在 Python 中会被识别为整数类型,所以`print(type(0x20))`的结果是`<class 'int'>`。 31. 正确 - `divmod()`函数确实返回一个包含商和余数的元组。 32. 错误 - `all()`函数用于判断给定的可迭代参数中的所有元素是否都为真值(非零、非空、非 False 等),若是返回 True,否则返回 False。 33. 错误 - `any()`函数用于判断给定的可迭代参数中的任一元素是否为真值(非零、非空、非 False 等),若是返回 True,否则返回 False。 34. 正确 - `help()`函数具有查看函数或模块说明的功能。 35. 正确 - 考查学生对列表切片时,切片起始位置、终止位置的理解。本题运行结果,2行Print()都会打印出['钱', '孙', '李'],所以小红所说是正确的。 三、编程题 36.参考代码: 参考程序: 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) 评分标准: (1)n-1;   (2分) (2)n-i-1;(4分) (3)j+1 。 (4分) 解析: 第一个空为n - 1,外层循环控制排序轮数,一共需要进行n - 1轮排序,因为每一轮都会确定一个最大的数放在正确的位置上。 第二个空为n - i - 1,内层循环控制每一轮中比较和交换的次数,每一轮中需要比较的次数是n - i - 1,因为每一轮确定一个最大数后,下一轮就少比较一个数。 第三个空为j + 1,这里是进行比较的条件,应该是比较当前元素和下一个元素。 37.参考代码: 参考程序: a=['is','happy','is','your','are','first','first','is','are','your'] n=len(a)-1 for i in range(0,n):     for j in range(i+1,n+1):         if a[i]>a[j]:             a[i],a[j]=a[j],a[i] key=a[0] i=1 ans=1 while i<=n:     if key==a[i]:         ans=ans+1         i+=1     else:         print(a[i-1]+':'+str(ans))         key=a[i]         ans=1         i+=1 print(a[i-1]+':'+str(ans))  评分标准: ①a[i],a[j]=a[j],a[i];  (4分) ②ans=ans+1;(4分) ③ans=1;   (4分) ④print(a[i-1]+':'+str(ans))。(4分) 解析: ①处是交换两个元素,使得列表按照字典序排列,所以是a[i],a[j]=a[j],a[i]。 ②处当发现当前元素与key相等时,增加计数,所以是ans+=1。 ③处当不相等时,重置计数为 1,所以是ans=1。 ④处是在循环结束后,需要再打印最后一个元素的统计结果,所以是print(a[i-1]+':'+str(ans))。 38.参考程序: import csv with open('cj.csv') as f:     rows = list(csv.reader(f))     n=0     for row in rows[1:]:         if int(row[1])>=85:             print(row[0])             n+=1 print(n) 评分标准: (1)csv.reader(f); (2分) (2)int(row[1])>=85。(2分) 解析: ①处使用csv.reader(f)将文件内容读取为一个可迭代的对象,然后使用list()将其转换为列表,以便后续操作。 ②处判断体质测试成绩是否大于等于 85 分,由于读取的内容是字符串,需要转换为整数进行比较,即int(row[1]) >= 85。 学科网(北京)股份有限公司 $$

资源预览图

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