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

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

内容正文:

青少年软件编程(Python)等级考试试卷(三级) 202409真题与解析 分数:100  题数:37 测试时长:60分钟 一、单选题(共25题,共50分) 1. 以下表达式的值为True的是?( ) A.  all(' ','1','2','3') B.  any([]) C.  bool('abc') D.  divmod(6,0) 2. 下列代码的运行结果是?( ) l=list(map(float, (1,2,3,4))) print(l) A.  [1,2,3,4] B.  ['1','2','3','4'] C.  [1.0,2.0,3.0,4.0] D.  ['1.0','2.0','3.0','4.0'] 3. 关于filter()函数的使用,以下哪个选项不正确?( ) A.  filter()函数可以用于过滤出一个序列里符合函数功能的元素 B.  filter()函数接收两个参数 C.  filter()函数只能过滤列表 D.  filter()函数可与lambda匿名函数一起使用 4. 运行以下代码,得到的结果是?( ) a='20'  b='24'  print(a+b) A.  44 B.  2024 C.  20+24 D.  '44' 5. 表达式[1, 2, 3]*3的执行结果为?( ) A.  [3,6,9] B.  [1,2,3],[1,2,3,],[1,2,3,] C.  [1, 2, 3, 1, 2, 3, 1, 2, 3] D.  [123123123] 6. 表达式[3] in [1, 2, 3, 4]的结果是?( ) A.  2 B.  3 C.  False D.  True 7. 表达式 sum(range(5)) 的值为?( ) A.  5 B.  55 C.  10 D.  15 8. 表达式list(map(str, [1, 2, 3, 4, 5])) 的值为?( ) A.  [1,2,3,4,5] B.  {1,2,3,4,5} C.  ['1','2','3','4','5'] D.  {'1','2','3','4','5'} 9. 表达式divmod(6,2)结果为?( ) A.  (3) B.  (0) C.  (3,0) D.  [3,0] 10. 运行以下代码,输出的结果是?( ) s='abcdefg' print(min(s)+max(s)) A.  ag B.  a C.  g D.  ga 11. 运行程序,下列说法正确的是?( ) c=["立春","雨水"] f=open("jieqi.csv","a") f.write(",".join(c)+" ") f.close() A.  如果存在jieqi.csv文件,将覆盖jieqi.csv文件内容 B.  如果不存在jieqi.csv文件,将产生一个jieqi.csv文件 C.  程序运行后jieqi.csv文件内容不变 D.  程序运行错误 12. 使用with语句可以读取csv格式文件中的数据,下图所示,有一个名为“jieqi.csv”的文件,小明针对这个文件编写如下代码,请问代码运行后打印在屏幕上的结果是?( ) with open("jieqi.csv","r") as f:     c=f.read().strip().split(",") print(c) A.  立春,雨水,惊蛰,春分 B.  [立春,雨水,惊蛰,春分] C.  ['立春,雨水,惊蛰,春分'] D.  ['立春','雨水','惊蛰','春分'] 13. 使用 readline()和readlines()函数可以读取txt文件中的数据。D盘“jieqi.txt”文件内容如下图,小明编写了下面代码,运行后打印在屏幕上的结果是?( ) f=open(r"D:\jieqi.txt", "r") s = f.readline() s1=f.readlines() f.close() print(s1) A.  立春 B.  雨水 C.  [雨水,惊蛰,春分] D.  ['雨水 ','惊蛰 ','春分 '] 14. 使用open函数打开一个csv格式文件后,如果要将整个文件里的内容读取存放到一个 字符串变量中,需要使用以下文件操作的哪个函数?( ) A.  read() B.  readline() C.  readlines() D.  write() 15. 将水果价格一维数据['苹果','8元']写入"jiage.csv"文件操作,横线上填写正确的是?( ) f = open("jiage.csv", "w") ls = ['苹果','8元'] f._____(",".join(ls)+ " ") f.close() A.  insert B.  append C.  write D.  read 16. 下列哪个选项不是 bin() 函数返回值的特点?( ) A.  它以 '0b' 开头,表示这是一个二进制数 B.  它只包含字符 '0' 和 '1' C.  它的长度总是固定的 D.  它表示的是输入整数的二进制表示 17. 对分查找,也称作二分查找,对一个列表中的元素进行对分查找的前提条件是?( ) A.  列表元素无序 B.  列表元素有序 C.  列表元素唯一 D.  列表元素数量必须是偶数 18. 对一组数据[7, 2, 9, 4, 8, 1, 4, 5]进行排序,使用选择排序按从大到小的顺序进行排列,则第1轮排序过后的结果是?( ) A.  2, 7, 4, 8, 1, 4, 5, 9 B.  9, 8, 7, 4, 2, 1, 4, 5 C.  9, 2, 7, 4, 8, 1, 4, 5 D.  7, 2, 4, 8, 1, 4, 5, 9 19. 对于列表[3, 1, 5, 8, 2, 10]按从左往右进行升序的冒泡排序,则第几轮排序后的结果就是有序的?( ) A.  3 B.  4 C.  5 D.  6 20. 十六进制数2024转换为二进制数是?( ) A.  2024 B.  10000000100100 C.  11000011100 D.  10000010100 21. 十进制数15转换为二进制数,其结果是?( ) A.  F B.  10101 C.  1101 D.  1111 22. 下列有关数制的说法,错误的是?( ) A.  二进制的基本数码是0、1、2 B.  数据在计算机内部是以二进制方式存储和处理的 C.  十六进制采用逢十六进一的进位规则 D.  十进制的8大小等同于十六进制的8,但十进制的18不等同于十六进制的18 23. 表达式oct(11)的值是?( ) A.  '0b11' B.  '0x11' C.  '0o13' D.  13 24. 请选择,下面代码运行之后的结果是?( ) a = '2' b = '4' try:     c = a * b     print(c) except:     print('程序出错!') else:     print('程序正确!') A.  8 B.  24 C.  程序正确! D.  程序出错! 25. 小明编写了如下代码,请问,代码运行后屏幕上打印出的结果是?( ) x = 8 y = [3,2,1,0] z = y.pop(1) try:     a = int(x / z) except:     print('程序出错!') else:     pass finally:     print(a) A.  8 B.  4 C.  程序出错 D.  屏幕上无输出 二、判断题(共10题,共20分) 26. 表达式bool(max(6,7,8))和max(bool(6,7,8))的运行结果都是True。( )   27. map()函数不改变原列表,而是返回一个新列表。( )   28. abs(-1.0)的运行结果为1。( )   29. 列表c=[[' 张三','88'],['李四','92'],['王五','85']]可以表示二维数据。( ) 30. 在Python中使用with语句打开文件,程序运行处理结束后会自动关闭被打开的文件。( )   31. 在Python中open('city.csv','r')命令的作用是以可写入的方式打开文件名为city的csv格式文件。( )   32. 十六进制转换成十进制数,其位数一定会变多。( )   33. 假设五进制数2用(2)5表示,若表达式(6)n+(1)n=(10)n成立,那么该n进制一定为七进制。( )   34. 请仔细阅读以下代码,判断这段代码能否正常运行?( ) while True :     a = input('请输入一个整数,若不是整数将会强制让你重新输入:  ' )     try:         b = int(a)     except:         print('你输入的不是整数!将返回重输。')     else:         print('你输入的是整数,程序结束。')         break   35. acsii(‘0’),运行的结果是48。( )   三、编程题(共3题,共30分) 36. 某实验小学举行了跳绳比赛,其中四年级1班和2班的比赛数据存储在“ts.csv”中,如图所示,现要求Python读取该比赛数据文件,并统计各班成绩在110(含110)以上的人数。实现代码如下,请你补全划线处代码: import csv with open ("/data/ts.csv") as fs:     hs=list(csv.reader(        ①        ))     c1=0     c2=0     for i in hs[1:]:         if i[0]=="1"and         ②        >=110:             c1+=1         elif i[0]=="2"and         ③        >=110:             c2+=1    print("四(1)班110以上的有:"+str(c1)+"个")     print("四(2)班110以上的有:"+str(c2)+"个")   37. 有一个数字构成的列表 a = [6,2,3,5,4,5,2,6,5,5,4,3,7],小明用冒泡排序算法编写了一段程序,将列表中的数字从小到大排列,运行结果为: [2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7]  ,请将下面程序中红色 ①②③ 处欠缺的代码补充完整。 a = [6,2,3,5,4,5,2,6,5,5,4,3,7] for i in range(0,        ①        ) :     for j in range(i+1 ,        ②        ) :         if        ③        :             a[i] , a[j] = a[j] , a[i] print(a)   38. 鸡兔同笼 小明在解决经典的“鸡兔同笼”问题时,使用“穷举法”编写了以下代码。请将代码中红色①②③④处补充完整: tou = int(input("请输入笼中鸡与兔脑袋的总数:  ")) jiao = int(input("请输入笼中鸡与兔脚的总个数:  ")) a = 0 for ji in range(        ①        ):     tu =        ②        - ji     if 2 * ji  +  4 * tu  ==        ③        :         print("鸡的个数为:", ji, "兔的个数为:", tu)         a = a + 1 if a ==        ④        : print("头数与脚数不合理,没有合适的结果。") 参考答案及解析: 一、单选题 1. 答案:C - 解析:all(' ','1','2','3')中有空字符串,结果为False;any([])空列表结果为False;bool('abc')非空字符串为True;divmod(6,0)会报错。 2. 答案:C - 解析:map(float, (1,2,3,4))将元组中的元素转换为浮点数,list()将结果转换为列表[1.0, 2.0, 3.0, 4.0]。 3. 答案:C - 解析:filter()函数可以用于过滤出一个序列(不只是列表,还可以是元组等可迭代对象)里符合函数功能的元素,接收两个参数(一个函数和一个可迭代对象),可与lambda匿名函数一起使用。 4. 答案:B - 解析:对于字符串,+操作表示拼接,所以结果是'2024'。 5. 答案:C - 解析:[1, 2, 3]*3表示将列表[1, 2, 3]重复三次,得到[1, 2, 3, 1, 2, 3, 1, 2, 3]。 6. 答案:C - 解析:[3]是一个列表,不是[1, 2, 3, 4]中的元素,所以结果是False。 7. 答案:C - 解析:sum(range(5))计算0+1+2+3+4的结果为10。 8. 答案:C - 解析:map(str, [1, 2, 3, 4, 5])将列表中的元素转换为字符串,list()将结果转换为列表['1','2','3','4','5']。 9. 答案:C - 解析:divmod(6,2)返回商和余数组成的元组(3,0)。 10. 答案:A - 解析:min(s)='a',max(s)='g',输出 min(s)+max(s)为'ag'。 11. 答案:B - 解析:以'a'模式打开文件,如果文件不存在,将产生一个文件;如果文件存在,会在文件末尾追加内容,不会覆盖原有内容。 12. 答案:D - 解析:f.read().strip().split(",")将读取的文件内容去除两端空白符,按逗号分割成列表,每个元素是一个字符串,所以结果是['立春','雨水','惊蛰','春分']。 13. 答案:D - 解析:f.readline()读取文件的第一行,f.readlines()读取剩余的行并组成一个列表,每行末尾带有换行符,所以结果是['雨水 ','惊蛰 ','春分 ']。 14. 答案:A - 解析:read()函数可以将整个文件里的内容读取存放到一个字符串变量中;readline()每次读取一行;readlines()读取所有行组成一个列表;write()是用于写入内容。 15. 答案:C - 解析:open("jiage.csv", "w")以写入模式打开文件,使用write函数写入内容。 16. 答案:C - 解析:bin()函数返回的二进制数长度不固定,取决于输入整数的大小。 17. 答案:B - 解析:对分查找的前提条件是列表元素有序。 18. 答案:C - 解析:选择排序第一轮,从所有元素中找到最大的元素9,与第一个元素7交换位置,得到9, 2, 7, 4, 8, 1, 4, 5。 19. 答案:A - 解析:第1轮:1 3 5 2 8 10;第2轮:1 3 2 5 8 10;第3轮:1 2 3 5 8 10。 20. 答案:B - 解析:十六进制数2024转换为二进制数是10000000100100。 21. 答案:D - 解析:十进制转二进制,采用除2倒取余数的方法,故选D。A为十六进制数,B和C混淆了十六进制和二进制的转换方法。 22. 答案:A - 解析:二进制的基本数码是0和1,没有2。 23. 答案:C - 解析:oct(11)将十进制数11转换为八进制,结果是'0o13'。 24. 答案:D - 解析:变量a与b都是字符串,不能进行乘法运算,所以经过异常处理之后,会打印”程序出错!“。 25. 答案:B - 解析:y.pop(1)取出列表y中的元素2,x / z = 8 / 2 = 4,没有异常发生,最后输出4。 二、判断题 26. 答案:错 - 解析:bool(max(6,7,8))结果为True;max(bool(6,7,8))会报错,因为bool(6,7,8)语法错误,max函数接收的参数应该是可比较的数值或可迭代对象中的数值。 27. 答案:对 - 解析:map()函数不改变原列表,而是返回一个新的可迭代对象,通常可以用list()转换为新列表。 28. 答案:错 - 解析:abs(-1.0)取-1.0的绝对值,结果为1.0。 29. 答案:对 - 解析:列表c=[[' 张三','88'],['李四','92'],['王五','85']]可以表示二维数据,每个子列表代表一行数据。 30. 答案:对 - 解析:在Python中使用with语句打开文件,程序运行处理结束后会自动关闭被打开的文件,无需手动调用close()方法。 31. 答案:错 - 解析:open('city.csv','r')是以只读的方式打开文件名为city的csv格式文件,不是可写入的方式。 32. 答案:错 - 解析:十六进制转换成十进制数,位数不一定会变多,例如十六进制数A(十进制为10)转换后还是两位数。 33. 答案:对 - 解析:(6)n+(1)n=(10)n,分别将n为不同进制代入验证,只有当n为七进制时等式成立。 34. 答案:对 - 解析:这段代码使用while循环不断接收用户输入,通过try-except判断输入是否为整数,如果不是则提示用户重新输入,是整数则输出并退出循环,能正常运行 35. 答案:错 - 解析:ord('0')的结果是48,acsii函数不存在。 3、 编程题 36.参考答案: 参考程序: import csv with open ("/data/ts.csv") as fs:     hs=list(csv.reader(fs))     c1=0     c2=0     for i in hs[1:]:         if i[0]=="1"and int(i[1])>=110:             c1+=1         elif i[0]=="2"and int(i[1])>=110:             c2+=1    print("四(1)班110以上的有:"+str(c1)+"个")     print("四(2)班110以上的有:"+str(c2)+"个") 试题解析: 评分标准: (1)fs 或等效答案;(2分) (2)int(i[1]) 或等效答案;(1分) (3)int(i[1]) 或等效答案。(1分) 解析: (1)在打开文件后,使用csv.reader(fs)读取文件内容,将其转换为可迭代对象,然后通过list()函数将其转换为列表,方便后续处理。 (2)对于每个数据行,如果是四(1)班且成绩大于等于 110,则增加四(1)班的计数,所以这里需要将成绩转换为整数进行比较,即int(i[1]) >= 110。 (3)同理,对于四(2)班的情况,也是比较成绩是否大于等于 110,即int(i[1]) >= 110。 37.参考答案: 参考程序: a = [6,2,3,5,4,5,2,6,5,5,4,3,7]  for i in range(0,len(a)-1) :       for j in range(i+1 , len(a)) :           if a[i] > a[j] :             a[i] , a[j] = a[j] , a[i] print(a) 试题解析: 评分标准: (1)len(a)-1 或等效答案;(4分) (2)len(a) 或等效答案;(2分) (3)a[i]  > a[j] 或等效答案。(4分) 解析: (1)外层循环控制遍历整个列表的次数,通常为列表的长度减一,所以是len(a)-1。 (2)内层循环从i + 1开始,遍历剩余未排序的部分,也应该遍历到列表的末尾,所以也是len(a)。 (3)当a[i] > a[j]时,说明当前元素大于后面的元素,需要交换位置,以实现从小到大排序。 38.参考答案: 参考程序: tou = int(input("请输入笼中鸡与兔脑袋的总数:  ")) jiao = int(input("请输入笼中鸡与兔脚的总个数:  ")) a = 0 for ji in range(tou+1):     tu = tou - ji     if 2*ji + 4*tu == jiao:         print("鸡的个数为:",ji,"兔的个数为:",tu)         a = a + 1 if a == 0 :     print("头数与脚数不合理,没有合适的结果。") 试题解析: 评分标准: (1)tou+1 或等效答案;(4分) (2)tou 或等效答案;(4分) (3)jiao 或等效答案;(4分) (4)0 或等效答案。(4分) 解析: (1)鸡的数量可能是从 0 到脑袋总数tou,所以range(tou + 1),保证遍历所有可能的鸡的数量。 (2)兔子的数量等于脑袋总数减去鸡的数量,即tu = tou - ji。 (3)要判断鸡和兔的脚的总数是否符合输入的脚的总数,所以是jiao。 (4)如果没有找到合适的结果,即a为 0 时输出 “头数与脚数不合理,没有合适的结果。”。 学科网(北京)股份有限公司 $$

资源预览图

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