1、全国青少年软件编程Python五级卷与答案青少年软件编程(Python)等级考试试卷(五级)分数:100题数:38 一、单选题(共25题,共50分)1. 关于列表和元组的关系,下列描述不正确的是?( ) A. 列表是包含若干元素的有序内存空间B. 元组是包含若干元素的有序内存空间C. 列表是包含若干元素的连续内存空间D. 元组和列表本质上没有区别,只是元组是放在小括号中,列表是放于方括号中而已 试题编号:20211113-ssn-01 试题类型:单选题 标准答案:D 试题难度:一般 试题解析: 2. 以下序列对象的描述,非法的或者值为False的选项是?( ) A. B. None,0,C.
2、(8)!=8D. (8)!=8 试题编号:20211113-ssn-02 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 3. 对于列表的方法pop()与remove()的区别与相同点,正确的描述是?( ) A. 都是删除与参数表中参数相同的元素B. pop()没有返回值C. remove()没有返回值D. pop()如果不带参数,则表示默认参数值为0 试题编号:20211113-ssn-03 试题类型:单选题 标准答案:C 试题难度:一般 4. 执行下列代码,正确的答案是?( ) l=10,0,1,6,12,8 l.sort(key=float) l A. 10.0,0.0,1.
3、0,6.0,12.0,8.0B. 0,1,10,12,6,8C. 0, 1, 6, 8, 10, 12D. 12,10,8,6,1,0 试题编号:20211113-ssn-04 试题类型:单选题 标准答案:C 试题难度:一般 5. 下列元组的声明,非法的是哪一项?( ) A. t=0,B. t=0,1C. t=(0)D. t=(0,1) 试题编号:20211113-ssn-05 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 6. 下列函数或操作,错误的为哪一项?( ) A. tuple(hello world)B. tuple(range(3)C. tuple(str,range
4、(3)D. tuple(map(str,range(3) 试题编号:20211113-ssn-06 试题类型:单选题 标准答案:C 试题难度:一般 7. 赋值语句path=rc:abcxyztag.txt,执行结果是?( ) A. path的值是c:abcxyztag.txtB. path的值是c:bcyzag.txtC. path的值是c:abcxyztag.txtD. 提示出错 试题编号:20211113-ssn-07 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 8. print(x65)的结果是?( ) A. x65B. x65C. eD. A 试题编号:20211113
5、-ssn-08 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 9. 求执行下列操作后的正确结果?() url= url.split() A. www,lxsz,comB. www,lxsz,comC. D. 试题编号:20211113-ssn-09 试题类型:单选题 标准答案:D 试题难度:一般 试题解析: 10. 运行下列代码,正确的结果是?( )print(:06.2f.format(3.1415926) A. 003.14B. 003.14C. 3.14D. 3.14 试题编号:20211113-ssn-10 试题类型:单选题 标准答案:B 试题难度:一般 11. 下列语句
6、的输出结果是?( )for i in xyz:for j in range(1,3):print(i,end=)if i=z:break A. xxyzzB. .xxyyzzC. xxyyD. xxyyz 试题编号:20211113-ssn-11 试题类型:单选题 标准答案:D 试题难度:一般 试题解析: 12. 请确认以下程序中有几处错误?( )input turtlecolors=blue,red,green,yellowt=turtle.Pen()for i in range(100)t.color(colorsi%5)w+=2t.forward(w)t.left(89) A. 1B.
7、2C. 3D. 4 试题编号:20211113-ssn-12 试题类型:单选题 标准答案:C 试题难度:较难 试题解析: 13. 下列语句的输出结果是?( )for i in range(6):if i%2=0:breakelse:print(i,end=,) A. 1,3,5,B. 1,3,5C. 0,2,4,D. 没有输出 试题编号:20211113-ssn-13 试题类型:单选题 标准答案:D 试题难度:一般 14. 有如下Python程序段:import randomc=0s=0for i in range(0,10):n=random.randint(1,101)if n%2=0:s
8、+=ic+=1print(i)该程序段被执行后,下列说法不正确的是?( ) A. 把程序 s+=i 改为 s=s+i 后,得到的结果是一样的。B. i=9C. 语句 c+=1 可能执行了 10 次D. 变量 s 中存储的生成的 10 个随机数中偶数相加的和 试题编号:20211113-ssn-14 试题类型:单选题 标准答案:D 试题难度:较难 试题解析: 15. 下列声明字典的语句,错误的是?( ) A. d=B. d=name:Tom,age:20,salary:3900C. d=dict(title=Python,author=Tom,price=59)D. d=dict(name,Je
9、rry),(age,20) 试题编号:20211113-ssn-15 试题类型:单选题 标准答案:D 试题难度:一般 试题解析: 16. 已知字典dict=姓名:张三,李四,王五,投票数:18001,19682,23468,则print(dict姓名1,dict投票数0)的结果为?( ) A. 张三 18001B. 张三 19682C. 李四 18001D. 李四 19682 试题编号:20211113-ssn-16 试题类型:单选题 标准答案:C 试题难度:一般 17. 下列说法,正确的是?( ) A. 集合类型是一个元素集合,元素之间有序B. 集合类型是一个元素集合,元素不能重复C. s=
10、set1,2,3,声明了一个集合SD. 集合类型是一个元素集合,元素之间无序,元素类型必修相同 试题编号:20211113-ssn-17 试题类型:单选题 标准答案:B 试题难度:一般 试题解析: 18. 运行下列代码,正确的结果是?( )x = set(runoob) y = set(google) x|y A. o,oB. r, b, u, nC. l, n, r, e, b, g, u, oD. o 试题编号:20211113-ssn-18 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 19. 使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表l=1,3
11、,5,7转换为列表1,3,5,7的函数写法为?( ) A. map(int,l)B. map(l,int)C. list(map(int,l)D. list(map(l,int) 试题编号:20211113-ssn-19 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 20. m=i*2 for i in range(4) 的结果的是?( ) A. 16B. 8C. 0, 1, 4, 9D. 1, 4, 9, 16 试题编号:20211113-ssn-20 试题类型:单选题 标准答案:C 试题难度:一般 21. import randomfibo = 1 * 11for i in
12、range(2, 11):fiboi = fiboi - 1 + fiboi - 2n = random.randint(1,10)print(fibon)运行该程序段,输出结果不可能是?( ) A. 1B. 21C. 35D. 89 试题编号:20211113-ssn-21 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 22. 下列代码的运行结果是?( )def jishu(n):return n % 2 =0newlist = filter(jishu, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)n=list(newlist)print(n) A. 1,2,
13、3,4,5,6,7,8,9,10B. 10,9,8,7,6,5,4,3,2,1C. 2,4,6,8,10D. 1, 3, 5, 7, 9 试题编号:20211114-ssn-001 试题类型:单选题 标准答案:C 试题难度:一般 试题解析: 23. import randomlis= 0 * 6i = 0while i list(zip(abcd,range(3)返回出错 正确 错误 试题编号:20211114-ssn-006 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:正确的答案是(a, 0), (b, 1), (c, 2) 28. 0:%.format(3.14)返回3.1
14、40000%;0:.2f.format(3.14)返回3.14。 正确 错误 试题编号:20211114-ssn-007 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:0:%.format(3.14)返回314.000000% 29. str=nihaonlipingnzhang san str.split()结果是:nihao, liping, zhang, san 正确 错误 试题编号:20211114-ssn-008 试题类型:判断题 标准答案:正确 试题难度:一般 试题解析:在调用方法split()时,若不传递任何参数,则会使用任何空白字符(包括空格、换行符、制表符等)作
15、为分隔符;若字符串存在连续的空白字符,则按一个空白字符对待,并且返回结果中不包含任何空字符串。 30. dict(enumerate(range(3)返回值为0: 0,1: 1,2: 2 正确 错误 试题编号:20211114-ssn-009 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:返回值为0: 0, 1: 1, 2: 2。 31. 某Python 程序段如下:s = Errors should never pass silentlyd = for ch in s:if ch in d:dch += 1else:dch = 1print(de)运行该程序段,输出结果是2。
16、正确 错误 试题编号:20211114-ssn-010 试题类型:判断题 标准答案:错误 试题难度:较难 试题解析:正确答案是3。 32. set()函数可以用于生成集合,输入的参数可以是任意组合数据类型,返回结果是一个无重复且有序的集合。 正确 错误 试题编号:20211114-ssn-011 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析: 33. 列表、元组、字符串均可以用set()转换为集合,例如:set(1,2,2,3,4),结果是1,2,3,4 正确 错误 试题编号:20211114-ssn-012 试题类型:判断题 标准答案:正确 试题难度:一般 试题解析: 34.
17、下列两个语句的功能可能是等价: l=i*i for i in range(5) m=list(map(lambda x:x*x,range(5) 正确 错误 试题编号:20211114-ssn-013 试题类型:判断题 标准答案:正确 试题难度:一般 试题解析: 35. 利用日期时间模块datetime,可以获取“今天”的日期,方法如下: import datetime date.today().weekday()如果“今天”是星期天,则返回0 正确 错误 试题编号:20211114-ssn-014 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:返回日期是星期几,0, 6,0表示
18、星期一,6表示星期天。 三、编程题(共3题,共30分)36. 输入年月日,计算这一天是这一年的第几天。编写自定义函数完成程序功能,完善程序代码。根据年月日,计算这一天是这一年的第几天函数名 def getDays(year)参数 year:表示日期;字符串类型如20211201返回值:整数。表示这一天是这年的第几天def getDays(year):s = 0y = int(year:4)m = int(year4:6)d = int(year6:8)monthdays = (31,28,31,30,31,30,31,31,30,31,30,31)for i in range():s = s
19、+if (y % 4 =0 and y % 100 !=0 or y % 400 =0) and:s = s + 1s = s + dreturn syear = 20211201theday =print(theday) 试题编号:20211114-ssn-101 试题类型:编程题 标准答案:评分标准:m-1 (3分)monthdaysi (3分)m 2 (3分)getDays(year) (1分) 试题难度:一般 试题解析:参考程序:def getDays(year):s = 0y = int(year:4)m = int(year4:6)d = int(year6:8)monthdays
20、 = (31,28,31,30,31,30,31,31,30,31,30,31)for i in range(m-1):s = s + monthdaysiif (y % 4 =0 and y % 100 !=0 or y % 400 =0) and m 2:s = s + 1s = s + dreturn syear = 20211201theday = getDays(year)print(theday) 37. 素数是只能被1和本身整除的正整数,因式分解就是将一个正整数分解成若干个素数相乘的形式。用户从键盘输入小于1000的整数,对其进行因式分解,例如:10=2*5,60=2*2*3*5
21、。完善程序代码。#用户从键盘输入小于1000的整数,对其进行因式分解。例如:10=2*5,60=2*2*3*5。x = input(Please input an integer less than 1000:)x = int(x)t = xresult = while True:if t = 1:breakif t % i = 0:result.t = t/ielse:s=for i in result:s=s=print( x,=,s) 试题编号:20211114-ssn-102 试题类型:编程题 标准答案:评分标准:i = 2(2分)append(i)(2分)i+=1(2分)s+str(
22、i)+*(2分)s:-1(2分) 试题难度:一般 试题解析:参考程序:#用户从键盘输入小于1000的整数,对其进行因式分解。例如:10=2*5,60=2*2*3*5。x = input(Please input an integer less than 1000:)x = eval(x)t = xi = 2result = while True:if t = 1:breakif t % i = 0:result.append(i)t = t/ielse:i+=1s=for i in result:s=s+str(i)+*s=s:-1print( x,=,s) 38. 设计一个算法,汉诺塔(又称
23、河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。有三个单字符字符串和一个整数。三个字符表示三个杆子的编号,整数为盘子的数目。根据上述计算规则,补全下列代码。函数名:hannota(n,a,b,c)参数表:n - 正整数表示盘子数,a -a杆子,b -b杆子,c -c杆子。返回值:移动路径。示例:n=3,返回:A - CA - BC - BA - CB - AB - CA - Cdef hannota(n,a,b,c):if n = 1:print(a ,-, c)return
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1