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

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

内容正文:

青少年软件编程(Python)等级考试试卷(三级) 202209真题与解析 分数:100  题数:37 测试时长:60分钟 1、 单选题(共25题,共50分) 1.十六进制数100,对应的十进制数为 ?() (2分) A. 128  B. 256  C. 28  D. 56 2.下图代码中,问号处应该填写的答案是哪个?( )(2分) >>hex( ? ) '0xa' >> A. "9" B. 9 C. "10" D. 10 3.下列4个表达式中,答案不是整数6的是?()(2分) A. abs(-6) B. int(6.88)  C. round(5.55) D. min(float(6),9,8,7) 4.min()函数用于获取参数中的最小值,如果 a = min('654') ,请问下面表达式中,正确的是哪一个?()(2分) A. print(max(chr(a),3,2)) B. print(max(bin(a),3,2)) C. print(max(float(a),3,2)) D. print(max(hex(a),3,2)) 5.对于CSV格式数据文件,下列描述错误的是?()(2分) A. CSV文件使用逗号分隔值。 B. CSV文件的扩展名为.CS。 C. CSV格式是一种通用的,相对简单的文件格式。 D. “记事本”和“Excel”可直接读入和保存CSV格式文件。 6.下列程序将建立一个CSV格式文件,划线处正确的代码选项应该为?()(2分) a=['老虎','狗','大象','牛'] f=open('动物.CSV',______) f.write(','.join(a)+' ') f.close() A. 'W' B. 'R' C. 'w' D. 'r' 7.动物.CSV的文件内容如下:'老虎', '狗', '大象', '牛',下列程序从该CSV文件读出数据,并输出列表格式,划线处正确的代码选项应该为?()(2分) f=open('动物.CSV','r') a=f.read().strip().split(______) f.close() print(a) A. ',' B. ',' C. ' ' D. '\t' 8.下面程序生成CSV格式文件:  王鑫,86,90,92,99,94,95  杨小虹,93,97,95,90,86,85  李静,89,98,99,94,90,85  程序如下: a=[['王鑫','86','90','92','99','94','95'], ['杨小虹','93','97','95','90','86','85'], ['李静','89','98','99','94','90','85']] f=open('成绩.CSV','w') for i in a:   f.write(','.join(i)+______) f.close() 划线处的代码应该为?( ) A. 'r' B. 'w' C. '\t' D. ' ' 9.一个“成绩.CSV”文件(用“记事本”打开)如下: 王鑫,86,90,92,99,94,95 杨小虹,93,97,95,90,86,85 李静,89,98,99,94,90,85 下面程序执行结果是?() f=open('成绩.CSV','r') a=[] for i in f:     a.append(i.strip().split(',')) f.close() print(a) A. [['王鑫', '86', '90', '92', '99', '94', '95'], ['杨小虹', '93', '97', '95', '90', '86', '85'],['李静', '89', '98', '99', '94', '90', '85']] B. [['王鑫', '86', '90', '92', '99', '94', '95 '], ['杨小虹', '93', '97', '95', '90', '86', '85 '],['李静', '89', '98', '99', '94', '90', '85 ']] C. [['王鑫,86,90,92,99,94,95'], ['杨小虹,93,97,95,90,86,85'], ['李静,89,98,99,94,90,85']] D. ['王鑫,86,90,92,99,94,95 ', '杨小虹,93,97,95,90,86,85 ', '李静,89,98,99,94,90,85 '] 10.猜一个2022以内的随机数,用计算机解决该问题,比较合适的算法?()(2分) A. 二分查找算法 B. 解析算法 C. 枚举算法 D. 冒泡排序算法 11.现在一组初始记录无序的数据'8,9,5,2,1',使用冒泡算法,按从小到大的顺序排列,则第三轮排序的结果为?()(2分) A. [8,5,2,1,9] B. [2,1,5,8,9] C. [5,2,1,8,9] D. [1,2,8,9,5] 12.有如下列表a=[3,5,35,74,1,28,7],采用选择排序算法进行升序排序,请问第三轮排序之后的结果是?()(2分) A. [1,3,5,35,74,28,7] B. [1,3,5,7,28,35,74] C. [1,3,5,74,35,28,7] D. [1,3,5,7,35,74,28] 13.程序运行过程中出现的错误或意外,不包括以下选项?()(2分) A. 语法错误 B. 电脑不好 C. 运行错误 D. 逻辑错误 14.关于Python在处理程序异常时,下列说法不正确的是?()(2分) A. 每一个try模块只能设定一个except模块 B. 执行except模块部分,可以让程序继续运行 C. 程序有错误时执行except中的代码,没有错误时执行try中的代码 D. 异常处理可以弥补程序漏洞,使得程序在一些情况下不会终止运行。 15.divmod()函数的功能是用来求模和计算余数。对应变量x和y,divmod(x,y)返回的结果是以下哪一项?()(2分) A. (x//y, x%y) B. (x/y, x%y) C. (x%y, x//y) D. (x%y, x/y) 16.bool()函数用于将给定参数或表达式转换为布尔类型,以下使用了bool()函数的实例中,哪项返回True值?()(2分) A. bool(0) B. bool( ) C. bool(15*15+14*14<420) D. bool(-1) 17.查看对象的属性和属性值等信息,可以使用以下哪种函数?( )(2分) A. vars() B. dir() C. help() D. map() 18.round(20/3) 的返回值是以下哪一项?( )(2分) A. 6 B. 2 C. 7 D. 1 19.语句sorted([9,6,8,2,5],reverse = True)的返回结果是以下哪一项?()(2分) A. [2,5,6,8,9] B. [9,6,8,2,5] C. [9,8,6,5,2] D. [0] 20.执行语句"{1}{0}".format("中国", "加油","!"),输出结果是以下哪一项?()(2分) A. '中国加油!' B. '加油中国!' C. '中国加油' D. '加油中国' 21.关于语句float(2022)与float('2022')运行后的输出结果,以下哪一项正确?( )(2分) A. 均为2022 B. 均为2022.0 C. float(2022)的输出为2022,float('2022')运行后出错 D. float(2022)的输出为2022.0,float('2022')运行后出错 22.语句max([(1,2),(2,3),(3,4),(2,5)])运行后的输出结果是以下哪一项?()(2分) A. 5 B. (2,5) C. (4,5) D. (3, 4) 23.enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列。 下列程序 example = '7890' for i,j in enumerate(example):     print(i,j) 运行后的输出打印结果为以下哪一项?() A.  0,0 1,7 2,8 3,9 B.  0,7 1,8 2,9 3,0 C.  0 0 1 7 2 8 3 9 D.  0 7 1 8 2 9 3 0 24.关于all()函数的用法,以下语句中能够返回True值的是哪一项?()(2分) A. all(0) B. all([0]) C. all([0,1,2]) D. all(['0','1','2']) 25.如果要设计班级通讯录管理功能,需要往address.csv文件中追加新记录,(2分)则应该使用以下哪一种打开文件的方式?() A. open('address.csv','a+') B. open('address.csv','w+') C. open('address.csv','wb+') D. open('address.csv','rb+') 二、判断题(共10题,共20分) 26.有这样一个表达式:ord('a') - ord('A') ,这个表达式运行的结果是整数 32 。() 27.一维数据的存储常常采用空格、逗号、换行、分号等符号分隔元素。() 28.a=[['王鑫','86','90','92','99','94','95'],['杨小虹','93','97','95','90','86','85'],['李静','89','98','99','94','90','85']]其中,杨小虹同学的第三门成绩95的数据类型是整数。( ) 29.二维数据的处理等同于二维列表的操作,借助循环遍历可实现对每个数据的处理。() 30.关于程序的异常处理,可以使用try…except…或try…except…except…语句进行捕获控制。()  31.使用input()函数可以一次从键盘输入一个字符串,按回车键结束输入。() 32.set是一个不允许元素重复的集合。由于set里的元素位置允许随意,所以不能用索引访问。() 33.help()函数用来查看函数或模块的帮助信息,但不能直接查看对象里所提供方法的帮助信息。() 34.sum()函数可以对列表进行求和,但不能对元组进行求和。() 35.在Python编程语言中,'0b10' 表示二进制数10,并且这个数换算为十进制,就是整数2。() 三、编程题(共3题,共30分) 36.如下图有一个名为“book.csv”的文件,小明想计算所有库存书籍的总价,于是编写了下面代码。请将红色①②处的代码补充完整。 b = 0 s = 0 with open('/data/book.csv', 'r', encoding='utf-8') as f:     for line in f.  ___①____   ():         a = line.strip(" ").split(",")         b = b+1         if b >1: # 第一行是标题,所以从第二行开始计算             s = s +   int(a[1]) *  _____②____    print('总价:' , s) 37. 小敏想用二分法对关键字14进行查找,请你帮她补全代码。 lst=[3,12,7,45,9,10,31,90,1,23,14,52] ______①________     key=14 n=len(a) i,j=0,n-1 flag=-1 while ______②________ :     mid=(i+j)//2     if key==a[mid]:         flag=mid         break     elif key>a[mid]:         _____③_______           else:         j=mid-1 if  _______④________      :     print(str(key)+'没找到!') else:     print(str(key)+'已找到!') 38. 标准考试答题卡一般采用2B铅笔填涂,填涂好的答题卡经过扫描后得到相应的数字化图像,再通过光学识别,完成答题卡信息数据的采集、分析与统计。计算机判断答题卡中信息点被填涂的标准是灰度值小于132为黑色,灰度值大于等于132为白色。灰度值计算公式:灰度值=0.299×红色分量(R)+0.587×绿色分量(G)+0.114×蓝色分量(B),若分别输入n个信息点的RGB颜色值,则其判断程序如下:   n=int(input("请输入信息点个数:")) count=0 for i in range(1,n+1):     R=int(input(”请输入红色分量:”))      ______①________     B= int(input(”请输入蓝色分量:”))      Gray_scale= _______②________     if  ______③_____ :         print(“黑色”)          count=count+1     else:           print(“白色”)  print("黑色像素总共有:"+ ④ +"个") 参考答案与解析: 一、单选题 1.B 十六进制数100转换为十进制数为256。十六进制100 = 1*16^2 + 0*16^1 + 0*16^0 = 256。 2. D `hex()`函数将一个整数转换为十六进制字符串。- `hex(10)`返回`'0xa'`。 3. D - `abs(-6)`返回6。 - `int(6.88)`返回6。 - `round(5.55)`返回6。- `min(float(6),9,8,7)`返回6.0(是浮点数不是整数)。 4. C - `a = min('654')`,`min()`函数会取字符串中最小的字符,这里是'4',其 ASCII 值为52,`max(float(a),3,2)`中`float(a)`将 ASCII 值52转换为浮点数52.0,然后取最大值。 5. B - CSV文件的扩展名为.csv,不是.CS。 6. C - 要建立一个 CSV 文件并写入内容,应该使用'w'模式打开文件。 7. B - CSV 文件是用逗号分隔值的,所以应该用逗号','进行分割。 8. D - 在写入每一行数据后需要添加换行符' '。 9. A - `strip()`去除每行末尾的换行符,`split(',')`以逗号分割每行数据,最终得到一个包含三个子列表的列表。 10. A - 猜一个2022以内的随机数可以二分查找算法,不断地缩小范围查找。 11. B - 冒泡排序每轮比较相邻元素并交换位置。初始数据为'8,9,5,2,1'。 第一轮排序后:'8,5,2,1,9'。 第二轮排序后:'5,2,1,8,9'。 第三轮排序后:'2,1,5,8,9'。 答案是 B。 12. C - 选择排序每次从未排序部分找最小元素放到已排序末尾。初始列表a=[3,5,35,74,1,28,7]。 第一轮后:[1,5,35,74,3,28,7],第二轮后:[1,3,35,74,5,28,7],第三轮后:[1,3,5,74,35,28,7],答案是 C。 13. B - 程序运行过程中的错误或意外包括语法错误、运行错误和逻辑错误,“电脑不好”不是程序运行过程中出现的错误或意外类型。 14. A - 每一个`try`模块可以设定多个`except`模块。 15. A - `divmod(x,y)`返回的结果是`(x//y, x%y)`,即商和余数。 16. D - `bool(0)`为`False`;`bool()`为`False`;`bool(15*15+14*14<420)`为`False`;`bool(-1)`为`True`。 17. A - vars()函数可以查看对象的属性和属性值等信息。 18. C - `round(20/3)`结果为7。 19. C - `sorted([9,6,8,2,5],reverse = True)`表示对列表进行降序排序,结果为[9,8,6,5,2]。 20. D - `"{1}{0}".format("中国", "加油","!")`输出结果为'加油中国'。 21. B - `float(2022)`和`float('2022')`的输出结果都是2022.0。 22. B - `max([(1,2),(2,3),(3,4),(2,5)])`会比较每个元组的第一个元素,若相同则比较第二个元素,最终结果为(2,5)。 23. D - `enumerate()`函数在`for`循环中返回的是元组,每个元组包含索引和对应的值,输出形式为`0,7`、`1,8`、`2,9`、`3,0`。 24. D - `all(['0','1','2'])`中列表中的元素都是非空字符串,被视为真值,所以返回`True`。 25. A - 如果要往文件中追加新记录,应该使用'`a+`'模式打开文件。 二、判断题 26. 正确 - `ord('a')`是97,`ord('A')`是65,两者之差为32。 27. 正确 - 一维数据的存储常常采用空格、逗号、换行、分号等符号分隔元素。 28. 错误 - 在给出的列表中,杨小虹同学的第三门成绩95的数据类型是字符串,因为从 CSV 文件中读取的数据都是字符串类型。 29. 正确 - 二维数据的处理等同于二维列表的操作,借助循环遍历可实现对每个数据的处理。 30. 正确 - 可以使用`try…except…`或`try…except…except…`语句进行捕获控制程序的异常。 31. 正确 - `input()`函数可以一次从键盘输入一个字符串,按回车键结束输入。 32. 正确 - `set`是一个不允许元素重复的集合,不能用索引访问集合中的元素。 33. 正确 - help() 函数可以用来查看函数或模块的帮助信息,但它不能直接查看对象(如实例对象)所提供方法的具体帮助信息。要查看对象的帮助信息,可以使用 help(object.method) 的形式来获取该方法的文档字符串。 34. 错误 - `sum()`函数可以对元组进行求和,只要元组中的元素都是数字类型。 35. 正确 - `'0b10'`表示二进制数10,换算为十进制是2。 三、编程题 36.参考答案: 参考程序: b = 0 s = 0 with open('/data/book.csv', 'r', encoding='utf-8') as f:     for line in f.readlines():         a = line.strip(" ").split(",")         b = b+1         if b >1:   # 第一行是标题,所以从第二行开始计算             s = s + int(a[1]) * int(a[2])  print('总价:' , s) 试题解析: 评分标准: (1)readlines  (2分) (2)int(a[2])  (2分) 解析: ①处应该填写readlines,这样可以逐行读取文件内容。 ②处应该是int(a[2]),因为要计算总价,每本书的价格是a[1],数量是a[2],所以总价是价格乘以数量。 37.参考答案: 参考程序: lst=[3,12,7,45,9,10,31,90,1,23,14,52] a=sorted(lst) key=14 n=len(a) i,j=0,n-1 flag=-1 while i<=j:     mid=(i+j)//2     if key==a[mid]:         flag=mid         break     elif key>a[mid]:         i=mid+1     else:         j=mid-1 if flag==-1:     print(str(key)+'没找到!') else:     print(str(key)+'已找到!') 试题解析: 评分标准: (1)a=sorted(lst) 或等效答案;(3分) (2)i<=j 或等效答案;(2分) (3)i=mid+1 或等效答案;(3分) (4)flag==-1 或等效答案。(2分) 解析: ①处应该先对列表进行排序,因为二分法要求序列是有序的,所以a=sorted(lst)。 ②处应该是i <= j,这是循环条件,只要搜索区间不为空,就继续循环。 ③处因为关键字大于中间值时,应该在右半部分继续搜索,所以i = mid + 1。 ④处判断是否找到关键字,如果flag == -1表示没找到。 38.参考答案: 参考程序: n=int(input("请输入信息点个数:")) count=0 for i in range(1,n+1):     R=int(input("请输入红色分量:"))     G=int(input("请输入绿色分量:"))     B=int(input("请输入蓝色分量:"))     Gray_scale=0.299*R+0.587*G+0.114*B     if Gray_scale<132:         print("黑色")         count=count+1     else:         print("白色") print("黑色像素总共有:"+str(count)+"个") 试题解析: 评分标准: (1)G=int(input(”请输入绿色分量:”))或等效答案;(4分) (2)0.299*R+0.587*G+0.114*B 或等效答案;(4分) (3)Gray_scale<132 或等效答案; (4分) (4)str(count) 或等效答案。 (4分) 解析: ①处应该输入绿色分量,所以是G = int(input("请输入绿色分量:"))。 ②处是根据灰度值计算公式计算灰度值,即Gray_scale = 0.299 * R + 0.587 * G + 0.114 * B。 ③处是判断灰度值是否小于 132,即Gray_scale < 132。 ④处是输出黑色像素的个数,应该将count转换为字符串输出,即str(count)。 学科网(北京)股份有限公司 $$

资源预览图

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