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

标签:
普通文字版答案
2024-11-01
| 9页
| 93人阅读
| 0人下载

内容正文:

青少年软件编程(Python)等级考试试卷(三级) 202112真题与解析 分数:100  题数:37 测试时长:60分钟 一、单选题(共25题,共50分) 1. 小明在学习计算机时,学习到了一个十六进制数101,这个十六进制数对应的十进制数的数值是?( ) A.  65 B.  66 C.  256 D.  257 2. csv文件中读入数据的程序段如下:  f=open("city.csv","r") ls=[] for line in f:    ls.append(line.strip(" ").split(",")) f.close() print(ls) 与划线处等同功能的语句是?( ) A.  line.pop(" ") B.  line.del(" ") C.  line.remove(" ") D.  line.replace(" ","") 3. 下列表达式的结果与其他三项不相同的是?( ) A.  abs(-4) B.  round(abs(-3.5)) C.  abs(round(-3.5)) D.  min(round(-3.5),round(3.8)) 4. 表达式max([111,22,3],key=str)的值为?( ) A.  3 B.  111 C.  ’3’ D.  ’111’ 5. 下列不能产生结果为元组(1, 2, 3, 4)的是?( ) A.  1, 2, 3, 4 B.  tuple({1:2,3:4}) C.  tuple((1,2,3,4)) D.  tuple([1,2,3,4]) 6. 不能实现打开文件的功能的语句是?( ) A.  f = open('D:/city.csv', 'w') B.  f = open('D:\city.csv', 'w-') C.  f = open('D://city.csv ', 'w') D.  f = open('D:\\city.csv ', 'w') 7. 关于十进制数,下列说法错误的是?( ) A.  十进制数的基数为10,所以从小数点向左数第二位的权值是10的2次幂 B.  十进制数的基数为10,所以里面包括0,1,2……,9这十个数码 C.  十进制数的基本运算规则满足“逢十进一”,所以有时我们可以采用凑十法来进行简便运算 D.  十进制数是有符号的,如-18 8. 关于Python的序列描述,不正确的是?( ) A.  序列是Python中最基本的数据结构 B.  最常见的序列是列表和元组 C.  序列中表示元素位置的数字叫做索引,索引都是正整数 D.  Python内置了求序列长度的函数 9. 关于元组,描述不正确的是?( ) A.  元组是用括号把元素括在一起的,元素之间是用逗号分隔的 B.  元组可以为空,写做tup1=() C.  元组中可以只有一个元素,写做tup1=(3) D.  元组中的元素可以具有不同的类型 10. 以下程序的输出结果是?( ) x = 2 y = 0 try:     z = x / y     print(z) except ZeroDivisionError:     print('error') A.  z B.  2.0 C.  error D.  没有输出 11. 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。下列排序算法中效率最高的是?( ) A.  冒泡排序算法 B.  选择排序算法 C.  插入排序算法 D.  快速排序算法 12. bool()函数根据传入的参数的逻辑值创建一个新的布尔值,下列返回值是False的是?( ) A.  bool(2*3-0) B.  bool(2*3-2) C.  bool(2*3-3) D.  bool(2*3-6) 13. 下列函数能创建一个新的元组的是?( ) A.  tuple() B.  list() C.  dict() D.  set() 14. ascii()返回一个表示对象的字符串,则ascii(1)的结果是?( ) A.  1 B.  '1' C.  "'1'" D.  "'\\u4e2d\\u6587'" 15. 下列输出结果为"1+2+3=?"的是?( ) A.  print(1+2+3=?) B.  print(1+2+3,'=?') C.  print(1,2,3,sep='+',end='=?') D.  print(1,2,3,sep='+','=?') 16. a = max('12345'),下列选项中语法正确的一项是?( ) A.  print(min(float(a),7,6)) B.  print(min(chr(a),7,6)) C.  print(min(bin(a),7,6)) D.  print(min(hex(a),7,6)) 17. 运行结果与其他三项不同的是?( ) A.  sum([1,2,3],4) B.  sum([0,1,2],[3,2,2]) C.  sum([2,2,2],max(4,3,2)) D.  sum([0,3,4],int('3')) 18. 关于列表和元组的关系,下列描述不正确的是?( ) A.  list() 函数可以将元组转换为列表 B.  tuple()函数可以将列表转换为元组 C.  元组和列表是非常类似的,它们可以通过类型转换函数进行互相转换 D.  元组和列表本质上没有区别,只是元组是放在括号中,列表是放于方括号中而已 19. 当发生异常时,下列描述不正确的是?( ) A.  我们需要捕获异常,然后进行相应的处理 B.  我们需要把可能发生错误的语句放在try模块里 C.  我们需要把处理异常的语句放在except模块里 D.  我们需要为每一个try模块设定且只能设定一个except模块 20. 在Python中,int('10',2)语句的作用是?( ) A.  将十进制数10转化为二进制数1010 B.  将二进制数10转化为十进制整数 C.  将字符串“10”转化为二进制整数 D.  将字符串“10”转化为十进制整数 21. 以下描述中,错误的选项是?( ) A.  在Python中,0b100010表示二进制数100010 B.  Python中int('1a32',2)语句执行时将不能得到结果,会出现错误提示 C.  Python中0o、0b、0x依次表示二进制、八进制、十六进制数的前缀 D.  在Python中,运行hex(89)得到的结果是'0x59' 22. Python文件常用的写入方式有w和w+,它们的相同点是?( ) A.  追加读 B.  追加写 C.  可读可写 D.  文件不存在先创建,会覆盖原文件 23. 有如下程序段: for i in range(5):    print(i,end=',') 输出结果是?( ) A.  0,1,2,3,4 B.  0,1,2,3,4, C.  1,2,3,4,5 D.  1,2,3,4,5, 24. 有如下列表l=[7,2,9,6,4,5],采用冒泡排序进行升序排序,请问第3趟排序之后的结果是?( ) A.  [2,4,5,6,7,9] B.  [2,4,5,7,6,9] C.  [2,4,7,5,9,6] D.  [2,7,4,9,6,5] 25. 有如下列表l=[7,6,3,8,4,1],采用选择排序进行升序排序,请问第3趟排序之后的结果是?( ) A.  [1,3,4,6,7,8] B.  [1,3,6,8,4,7] C.  [1,6,3,8,4,7] D.  [1,3,4,8,6,7] 2、 判断题(共10题,共20分) 26. 在Python中,0x100010表示十六进制数100010。() 27. 在Python中,可以使用下面代码读取文件中的数据到列表 。() file = open('score.csv','r') name = file.read().strip(' ').split(',') file.close()   28. 在Python中open('name.csv','r')命令的作用是以可写入的方式打开文件名为name的csv格式文件。()  29. 在Python中,print(abs(8-12)*3)的输出结果为-12。()   30. 在Python中,divmod(98,8)的输出结果为(2,12)。()   31. 在Python中,chr(ord('a')-32)语句能将小写字母a转换为大写字母A。()   32. 在Python中,sorted()函数可以实现对列表中数据的排序,排序后原列表中数据的位置发生变化。()   33. bin函数可以将十进制数转换成二进制数。在Python交互式编程环境下,执行语句bin(15)后,显示的运行结果是'1111'。()   34. 二维数据可以用二维列表表示,该列表的每一个元素对应二维数据的一行。()   35. try...except结构的异常处理机制,当try代码段运行异常时,程序会跳到except代码段执行。()  三、编程题(共3题,共30分) 36. 小白兔们每天早上都到草坪上做早操。做操前,首先要按照身高由矮到高排个队,下列代码实现了排队的功能。首先读取小白兔的只数,然后读取每只小白兔的身高信息,进行由矮到高的处理,最后输出排好队的每只小白兔的身高,请你补全代码。 n = int(input('请输入兔子的总只数:')) a = [] for i in range(n):     x = float(input('请输入身高'))     a.append(  ①  ) a.    ②    for i in     ③   :     print(a[i]) 37. n个灯排成一排,开始时都是关着的。现进行如下操作: 所有电灯的按钮按动一次;所有编号为2的倍数的电灯按钮按动一次;所有编号为3的倍数的电灯的按钮按动一次; …… 所有编号为n-1的倍数的电灯的按钮按动一次;所有编号为n的倍数的电灯的按钮按动一次。 最后请统计有多少只电灯是亮的。编写程序实现上述功能,或补全代码。 n=int(input())        a=[] for i in range(  ①   ):      a.append(-1) for i in range(1,n+1):     for j in range(1,n+1):       if(      ②     ) == 0:         a[j] =     ③     * -1 s=0 for i in range(1,n+1):    if (a[i] ==     ④    ):       s=s+1 print(     ⑤    ) 38. 请读取文件IP.txt的数据,数据内容如下图显示:  文件中每一行存储一个IP地址,下列代码实现了读取数据,每次读取一行数据,都删除了行末的换行符,最后逆序输出文件中的每行IP地址,请你补全代码。 输出参考如下: 49.97.132.119 32.33.23.232 112.114.44.44 with open('  ①  ', 'r') as f:     list = f.readlines() for i in range(0, len(list)):     list[i] = list[i].strip('  ②  ') for i in range(    ③  ):     print(list[i]) f.close() 参考答案与解析: 一、单选题 1. D - 十六进制数101转换为十进制数为$1\times16^2 + 0\times16^1 + 1\times16^0 = 256 + 0 + 1 = 257$。 2. D - line.strip(" ")是去除字符串末尾的换行符,line.replace(" ","")也能实现相同功能。 3. D - abs(-4)=4;round(abs(-3.5))=4;abs(round(-3.5))=4;min(round(-3.5),round(3.8))=min(-4,4)= -4。 4. A - max([111,22,3],key=str)会先将每个元素转换为字符串再比较,'3'最大。 5. B - 1, 2, 3, 4会生成一个元组(1, 2, 3, 4);tuple({1:2,3:4})会生成一个元组,包含字典的键,即(1, 3);tuple((1,2,3,4))和tuple([1,2,3,4])也能生成元组(1, 2, 3, 4)。 6. B - 文件路径中\需要转义,'w-'不是合法的打开模式。 7. A - 十进制数从小数点向左数第二位的权值是10的1次幂。 8. C - 序列中索引可以是负整数。 9. C - 元组中只有一个元素时应写做tup1=(3,)。 10. C - 发生除零错误,会执行except中的语句,输出'error'。 11. D - 快速排序算法效率最高。 12. D - bool(2*3-6)=bool(0),结果为False。 13. A - tuple()能创建一个新的元组。 14. B -`ascii(1)`的结果是`'1'`,答案是 B。整数 1 经过`ascii()`函数处理后以字符串形式返回。选项 A 不是字符串;选项 C 多了一层单引号;选项 D 是中文字符的 Unicode 编码表示,与整数 1 无关。 15. C - print(1,2,3,sep='+',end='=?')输出结果为"1+2+3=?"。 16. A - max('12345')='5',chr(a)是错误的,bin(a)、hex(a)、float(a)都是将字符'5'转换后再比较。 17. B - sum([1,2,3],4)=10;sum([0,1,2],[3,2,2])=[0, 1, 2, 3, 2, 2];sum([2,2,2],max(4,3,2))=10;sum([0,3,4],int('3'))=10。 18. D - 元组是不可变序列,列表是可变序列,本质上有区别。 19. D - 一个 try 模块可以有多个 except 模块。 20. B - int('10',2)是将二进制数10转化为十进制整数。 21. C - 0b表示二进制数前缀,0o表示八进制数前缀,0x表示十六进制数前缀。 22. D - w和w+的相同点是文件不存在先创建,会覆盖原文件。 23. B - range(5)生成0到4的序列,输出结果是0,1,2,3,4,。 24. B - 冒泡排序第三趟结果是[2,4,5,7,6,9]。 25. D - 选择排序第三趟结果是[1,3,4,8,6,7]。 二、判断题 26. 正确 - 在 Python 中,0x100010 表示十六进制数 100010。 27. 正确 - 该代码可以读取文件中的数据到列表。 28. 错误 - open('name.csv','r')是以只读方式打开文件。 29. 错误 - abs(8 - 12) = 4,4 * 3 = 12。 30. 错误 - divmod(98,8)的输出结果为(12,2)。 31. 正确 - ord('a')得到小写字母 a 的 ASCII 值,减去 32 后再用 chr 转换为大写字母 A。 32. 错误 - sorted()函数排序后原列表中数据的位置不发生变化。 33. 错误 - bin(15)显示的运行结果是'0b1111'。 34. 正确 - 二维数据可以用二维列表表示,该列表的每一个元素对应二维数据的一行。 35. 正确 - try...except 结构的异常处理机制,当 try 代码段运行异常时,程序会跳到 except 代码段执行。 三、编程题 36.参考答案: 评分标准: ① x (3分) ② sort() 或等效答案(4分) ③ range(n) 或等效答案(3分) 解析: ①处应该填入x,将输入的身高值添加到列表a中。 ②处应该填入sort(),对列表a中的身高进行升序排序。 ③处应该填入range(len(a)),遍历排序后的列表a并输出每只小白兔的身高 参考程序: n = int(input('请输入兔子的总只数:')) a = [] for i in range(n):     x = eval(input('请输入身高'))     a.append(x) a.sort() for i in range(n): print(a[i]) 37.参考答案: ① n + 1 或等效答案;(3分) ② j % i 或等效答案;(4分) ③ a[j] 或等效答案;(3分) ④ 1 或等效答案;(3分) ⑤ s 或等效答案;(3分) 解析: ①处应该填入n + 1,确保能容纳从索引 1 到n的所有电灯状态,同时考虑到索引从 0 开始,所以需要多一个空间。 ②处应该填入j % i,判断电灯编号j是否是当前操作的倍数。 ③处应该填入a[j],每次按动按钮时改变电灯的状态,即从亮变为灭或从灭变为亮,通过乘以 -1 来实现状态切换。 ④处应该填入1,当电灯状态为亮时,值为 1。 ⑤处应该填入s,输出亮着的电灯数量。 参考程序: n=int(input()) a=[] for i in range(n + 1):      a.append(-1) for i in range(1,n + 1):    for j in range(1,n + 1):       if(j % i ) == 0:         a[j] =  a[j] * -1 s=0 for i in range(1,n + 1):    if (a[i] == 1):       s=s + 1 print(s) 38.参考答案: 评分标准: ①IP.txt (1分) ②  (1分) ③len(list)-1,-1,-1(2分) 解析: ①处应该填入'IP.txt',表示要读取的文件名。 ②处应该填入' ',因为每行末尾的换行符是' ',使用strip()方法去除它。 ③处应该填入len(list)-1, -1, -1,这样可以实现从最后一个元素开始,逆序遍历列表。 参考程序: with open('IP.txt', 'r') as f:     list = f.readlines() for i in range(0, len(list)):     list[i] = list[i].strip(' ') for i in range(len(list)-1,-1,-1):     print(list[i]) f.close() 学科网(北京)股份有限公司 $$

资源预览图

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