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

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

内容正文:

青少年软件编程(Python)等级考试试卷(三级) 202103真题与解析 分数:100  题数:37 测试时长:60分钟 一、单选题(共25题,每题2分,共50分) 1. 下列代码的输出结果是?( ) x = 0x10 print(x) A.  2 B.  8 C.  10 D.  16 2. 关于语句f=open('d:/a.txt', 'r'),下列描述不正确的是?( ) A.  f是变量 B.  'r'以只读方式打开文件 C.  如果文件a.txt不存在,不会报错 D.  ‘d:/a.txt’是文件路径,代表d盘中一个名为‘a.txt’的文件 3. 表达式 all([1,True,True])的结果是?( ) A.  1 B.  False C.  出错 D.  True 4. Python中表示合法的二进制整数是?( ) A.  0bC3F B.  0B1010 C.  0B1019 D.  0b1708 5. 执行语句x,y,z=tuple([2,1,3])之后,变量y的值为?( ) A.  1 B.  2 C.  [1] D.  [2,1,3] 6. 下列代码的执行结果是?( ) ls=[[1,2,3],[[4,5],6],[7,8]] print(len(ls)) A.  1 B.  3 C.  4 D.  8 7. 下列能产生列表[1, 3, 5, 7, 9]的表达式是?( ) A.  list(range(0,9)) B.  list(range(1,10)) C.  list(range(0,9,2)) D.  list(range(1,10,2)) 8. 二维列表data中,元素"3"的表示是?( ) data = [ [1,2], [3,4] ] A.  data[0][0] B.  data[0][1] C.  data[1][0] D.  data[1][1] 9. 下列代码的输出结果是?( ) n = 2 b=bool(n-2) print(n, b) A.  2 0 B.  0 True C.  2 False D.  0 False 10. 键盘输入数字10,以下代码的输出结果是?( ) try:     n = input("请输入—个整数: ")     n= n*n except:     print("程序执行错误") A.  100 B.  10 C.  程序执行错误 D.  程序没有任何输出 11. 下列程序运行后的输出结果是?( ) for i in reversed(range(10, 0, -2)):     print(i,end=" ") A.  2 4 6 8 10 B.  0 2 4 6 8 10 C.  12345678910 D.  9 8 7 6 5 4 3 2 1 0 12. 有如下列表1=[10,1,9,6,3,4],采用冒泡排序进行升序排序,请问第一趟排序之后的结果是?( ) A.  [1,3,9,6,10,4] B.  [1,9,6,3,4,10] C.  [1,6,3,4,9,10] D.  [1,3,4,6,9,10] 13. 表达式max(3,min(5,1,7))的结果是?( ) A.  1 B.  3 C.  5 D.  7 14. set() 函数通过交集、差集、并集等关系删除重复数据,创建一个无序不重复元素集。 下列程序执行结果正确的是?( ) x=set("中国") y=set("美国") print(x & y ) A.  {'中国'} B.  {'美国'} C.  {'中美国'} D.  {'国'} 15. 下列不能用于异常处理结构中捕获特定类型的异常的语句是?( ) A.  try-else语句 B.  try-except语句 C.  try-except-else语句 D.  try-except-finally语句 16. 下列表达式的结果不为10的是?( ) A.  sum([1,2,3,4]) B.  sum((1,2,3),4) C.  sum([1,2,3],4) D.  sum([1,2],[3,4]) 17. 表达式divmod(40,3)的结果是?( ) A.  13,1 B.  (13,1) C.  13 D.  1 18. 小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行升序排序,于是他编写了“选择排序”程序, 在调试程序的过程,他故意将循环的次数改成了固定值,如下图所示。 请问,现在这个程序执行之后print(arr)打印出的结果应该是?( ) A.  [5, 7, 21, 33, 39, 43, 67, 73] B.  [5, 7, 21, 33, 39, 73, 43,67] C.  [5, 7, 21, 67, 39, 73, 33, 43] D.  [5, 7, 21, 33, 39, 73, 67, 43] 19. 要表示10种不同的信息,需要的二进制位数至少为?( ) A.  2 B.  3 C.  4 D.  5 20. 下列代码的输出结果是?( ) for i in range(1,6):     if i%4== 0:         continue     else:         print(i,end =",") A.  1,2,3, B.  1,2,3,4, C.  1,2,3,5, D.  1,2,3,5,6, 21. 以下关于算法以及算法的描述,错误的是?( ) A.  算法必须要在有限的步骤内完成 B.  算法每个步骤的含义必须是确切的 C.  算法必须有输入,但可以没有输出 D.  算法可以没有输入,但必须要有输出 22. 八进制10与十六进制10相加,其对应的十进制数是?( ) A.  20 B.  26 C.  24 D.  18 23. 下列代码的输出结果是?( ) d ={"大海":"蓝色","天空":"灰色","大地":"黑色"}  print(d["大地"]) A.  “大地” B.  大地 C.  "黑色" D.  黑色 24. 假设city.csv文件内容如下,那么下列代码的输出结果是?( ) f=open("city.csv","r") ls=f.read().split(",") f.close() print(ls) A.  ['巴哈马','巴林','孟加拉国','巴巴多斯 白俄罗斯','比利时','伯利兹'] B.  ['巴哈马','巴林','孟加拉国','巴巴多斯','白俄罗斯','比利时','伯利兹'] C.  ['巴哈马,巴林,孟加拉国,巴巴多斯,白俄罗斯,比利时,伯利兹'] D.  ['巴哈马','巴林','孟加拉国','巴巴多斯',' ','白俄罗斯','比利时','伯利兹'] 25. 下列代码的输出结果是?( ) lis=list(range(4))  print(lis) A.  [0,1,2,3,4] B.  [0,1,2,3] C.  0,1,2,3, D.  0,1,2,3,4 二、判断题(共10题,每题2分,共20分) 26. int('0x25',16)语句和int('25',16)语句都能实现将十六进制数0x25转换成十进制数的功能。()   27. 使用open()函数打开'food.csv'文件后,返回的是列表。()   28. 数据可分为一维数据、二维数据和多维数据。()   29. 语句try-except-finally中finally语句无论异常是否发生都必须执行的语句。() 30. CSV文件的每—行是一维数据,可以使用Python中的列表类型表示。()   31. 二进制数 1010111转换为十六进制数是 A7。()   32. abs()函数的功能是将对小数进行取整,abs(-2.3)的运行结果是2。() 33. chr()函数用于将对象转换成字符串。()   34. enumerate() 函数将字符串、列表、元组、字典等组合为索引序列,同时列出数据和数据下标。()   35. senson=["春","夏","秋","冬"] () senson.remove("秋") print(senson) 执行上面程序,结果为['春', '夏', '冬'] 三、编程题(共3题,共30分) 36. 一个四位数,如果在它的左边加一个数字8,就可以得到一个五位数;如果在它的右边加一个数字6,就可以得到另一个五位数, 这两个五位数的和是121410。请问原来这个四位数是多少? 现在请你编写程序,求出这个四位数。 补全下面的代码: for a in range(    ①   ):     for b in range(   ②    ):         for c in range(0,10):             for d in range(0,10):                 if (    ③    )+(   ④  ) == 121410:                     print(a,b,c,d)   37. 请读取文件/data/subways.csv的数据,数据内容如下图显示: 下列代码实现了读取“学号”和“身高”信息,输出“身高”达到120的学号,请你补全代码。 import csv with open('/data/     ①     ') as f:     rows = list( csv.reader (f))     for row in rows[1:]:         if(int(row[1])>=120):              print(    ②     ) 38. 有一组数据[0,20,0,4,31]存放在nums中,请将列表中的所有零移动到列表尾。   nums=[0,20,0,4,31] initLen = ① i=0 j=0 while i<initLen:     if ②:         ③= nums[i]         j+=1     i+=1 ④=( len(nums)-j)*[0] print(⑤) 参考答案与解析 一、单选题 1. D - `0x10`是十六进制表示法,转换为十进制为16。 - `print(x)`输出变量`x`的值,即16。 2. C - `f`是变量,用于存储打开的文件对象,A正确。 - `'r'`表示以只读方式打开文件,B正确。 - 如果文件`a.txt`不存在,会报错,C错误。 - `‘d:/a.txt’`是文件路径,代表`d`盘中一个名为`‘a.txt’`的文件,D正确。 3. D - `all()`函数用于判断可迭代对象中所有元素是否都为真值。列表`[1, True, True]`中所有元素都为真值,所以结果为`True`。 4. B - Python中合法的二进制整数以`0b`或`0B`开头,数字只能是0和1。`0B1010`是合法的二进制整数。 5. A - `tuple([2,1,3])`创建一个元组`(2,1,3)`,执行`x,y,z=tuple([2,1,3])`后,变量`y`的值为1。 6. B - `ls=[[1,2,3],[[4,5],6],[7,8]]`是一个包含三个元素的列表,所以`len(ls)`的结果是3。 7. D - `range(start, stop, step)`函数生成一个整数序列。`list(range(1,10,2))`生成从1开始,步长为2,到9结束的整数序列,即`[1, 3, 5, 7, 9]`。 8. C - 二维列表`data`中,元素“3”位于第二行(索引为1)第一列(索引为0),所以表示为`data[1][0]`。 9. C - `n = 2`,`b=bool(n - 2)`,`n - 2`的值为0,`bool(0)`的结果为`False`,所以输出`2 False`。 10. C - `input()`函数返回的是字符串类型,`n = input("请输入—个整数: ")`,如果输入10,`n`是字符串“10”。执行`n = n*n`时会引发错误,因为字符串不能直接相乘,所以会执行`except`块中的代码,输出“程序执行错误”。 11. A - `reversed(range(10, 0, -2))`生成从10开始,步长为-2,到2结束的逆序整数序列。`for`循环遍历这个序列并输出,结果是`2 4 6 8 10`。 12. B - 冒泡排序第一趟比较会将最大的数移到末尾。对于列表`[10,1,9,6,3,4]`,第一趟排序后结果是`[1,9,6,3,4,10]`。 13. B - `min(5,1,7)`的结果是1,`max(3,1)`的结果是3。 14. D - `set()`函数创建集合。`x=set("中国")`得到集合`{'中', '国'}`,`y=set("美国")`得到集合`{'美', '国'}`。`x & y`表示求交集,结果是`{'国'}`。 15. A - `try-except`语句用于捕获特定类型的异常;`try-except-else`语句在没有异常时执行`else`块中的代码;`try-except-finally`语句无论是否有异常,`finally`块中的代码都会执行。没有`try-else`语句用于捕获特定类型的异常。 16. D - `sum([1,2,3,4])`的结果是10;`sum((1,2,3),4)`先计算元组`(1,2,3)`的和为6,再加上4结果为10;`sum([1,2,3],4)`先计算列表`[1,2,3]`的和为6,再加上4结果为10;`sum([1,2],[3,4])`会报错,因为`sum()`函数不能直接对两个列表求和。 17. B - `divmod(40,3)`返回商和余数组成的元组,即`(13,1)`。 18. D - 循环的参数设为range(0,4),是只循环了4次,所以选D。 19. C - 要表示10种不同的信息,$2^n\geq10$,$n$至少为4。 20. C - `range(1,6)`生成从1到5的整数序列。循环中,当`i%4==0`时执行`continue`跳过本次循环,否则输出`i`。结果是`1,2,3,5`。 21. C - 算法必须有明确的输入和输出,输入可以没有,但输出必须有。 22. C - 八进制10转换为十进制是8,十六进制10转换为十进制是16,两者相加为24。 23. D - `d["大地"]`访问字典`d`中键为“大地”的值,即“黑色”,`print(d["大地"])`输出“黑色”,没有引号。 24. A - `f.read().split(",")`以逗号为分隔符将文件内容分割成列表。无法去除换行符。'巴巴多斯 白俄罗斯'作为一个列表元素出现。 25. B - `list(range(4))`生成从0到3的整数列表,即`[0,1,2,3]`。 二、判断题 26. 正确 - int('0x25',16)语句和int('25',16)语句都可以实现转换。 27. 错误 - 使用`open()`函数打开文件后返回的是文件对象,不是列表。 28. 正确 - 数据可分为一维数据、二维数据和多维数据。 29. 正确 - `finally`语句无论异常是否发生都必须执行。 30. 正确 - CSV文件的每一行是一维数据,可以用列表类型表示。 31. 错误 - 二进制数1010111转换为十六进制数是57。 32. 错误 - `abs()`函数的功能是返回一个数的绝对值,`abs(-2.3)`的结果是2.3。 33. 错误 - `str()`函数用于将对象转换成字符串,`chr()`函数是将一个整数转换为对应的字符。 34. 错误 - `enumerate()`函数将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,不能用于字典。 35. 正确 - `senson.remove("秋")`从列表`senson`中移除元素“秋”,结果为`['春', '夏', '冬']`。 三、编程题 36.参考代码: 评分标准: ①1,10 (2分 ) ②0,10 (2分 ) ③80000+a*1000+b*100+c*10+d (3分 ) ④a*10000+b*1000+c*100+d*10+6 (3分 ) 参考答案: for a in range(1,10):     for b in range(0,10):         for c in range(0,10):             for d in range(0,10):                 if (80000+a*1000+b*100+c*10+d)+(a*10000+b*1000+c*100+d*10+6) == 121410:                     print(a,b,c,d)  #其中答案③和④可互换。 37.参考答案: 评分标准: ① subways.csv (2分) ② row[0] (2分) 参考程序: import csv with open('/data/subways.csv') as f:     rows = list( csv.reader (f))     for row in rows[1:]:         if(int(row[1])>=120):              print(row[0]) 38、参考答案: 评分标准: ①len(nums)(3分)  ② nums[i]!=0(4分) ③ nums[j](3分)  ④ nums[j:](3分)  ⑤ nums(3分) 参考程序: nums=[0,20,0,4,31] initLen = len(nums) i=0 j=0 while i<initLen:     if nums[i]!=0:         nums[j]= nums[i]         j+=1     i+=1 nums[j:]=( len(nums)-j)*[0] print(nums) 学科网(北京)股份有限公司 $$

资源预览图

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