2023完整版本.09全国青年软件编程(Python)等级考试试卷(四级)_第1页
2023完整版本.09全国青年软件编程(Python)等级考试试卷(四级)_第2页
2023完整版本.09全国青年软件编程(Python)等级考试试卷(四级)_第3页
2023完整版本.09全国青年软件编程(Python)等级考试试卷(四级)_第4页
2023完整版本.09全国青年软件编程(Python)等级考试试卷(四级)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青少年软件编程(Python)等级考试试卷(四级)分数:100题数:38一、单选题(共25题,共50分)1. 用枚举算法求解“100以内既能被3整除又能被4整除的元素”时,在下列数值范围内,算法执行效率最高的是?()A. 1~101B. 4~100C. 12~100D. 12~96试题编号:202306-zj-023试题类型:单选题标准答案:D试题难度:一般试题解析:在选取循环控制变量时,枚举范围应尽可能小,但又不能遗漏。考生答案:C考生得分:0是否评分:已评分评价描述:2. 下列有关函数的描述中,正确的是?()A. 函数中必须有return语句B. 在函数内部不能使用全局变量C. 函数能提高应用的模块化程度和代码的重复利用率D. 函数内容以大括号起始,并且缩进试题编号:20230614-fcl-002试题类型:单选题标准答案:C试题难度:一般试题解析:函数能提高应用的模块化程度和代码的重复利用率考生答案:C考生得分:2是否评分:已评分评价描述:3. 下列哪个语句能够定义参数个数不确定的函数?()A. hs(parameters)B. hs(parameters[])C. hs(parameters{})D. hs(*parameters)试题编号:20230614-fcl-004试题类型:单选题标准答案:D试题难度:一般试题解析:当不确定需要传入的值是多少个时,在定义形参时,可以使用*parameters来表示。考生答案:D考生得分:2是否评分:已评分评价描述:4. 执行如下Python代码的结果是?()defarea(r,pi=3.14):returnr*r*piprint(area(2,10))A. 40B. 200C. 400D. 20试题编号:20230614-fcl-007试题类型:单选题标准答案:A试题难度:一般试题解析:函数运行结果,2*2*10,结果是40。考生答案:D考生得分:0是否评分:已评分评价描述:5. 执行如下Python代码,输出结果是?()defhs(num):num+=1returnnumn=10s=hs(n)print(s)A. 11B. 10C. 1D. 运行错误试题编号:20230614-fcl-008试题类型:单选题标准答案:A试题难度:一般试题解析:函数的返回值,赋值给变量s,输出11。考生答案:B考生得分:0是否评分:已评分评价描述:6. 有如下Python程序,输出的结果是?()defwhao(year='2023'):print('你好'+year)whao()A. 你好B. 你好2023C. 你好yearD. 没有输出试题编号:20230614-fcl-009试题类型:单选题标准答案:B试题难度:一般试题解析:调用函数whao,输出:你好2023考生答案:A考生得分:0是否评分:已评分评价描述:7. 编写计算正方体体积的匿名函数,下列哪一个语句是正确的?()A. rst=lambdaa:a*3B. lambdaa:a*3C. rst=lambdaa:a**3D. lambdaa:a**3试题编号:20230614-fcl-01试题类型:单选题标准答案:C试题难度:一般试题解析:关键字lambda表示匿名函数,冒号之前表示的是这个函数的参数,冒号之后表示的是返回值,在定义匿名函数时,需要将它赋值给一个变量。考生答案:A考生得分:0是否评分:已评分评价描述:8. 执行如下Python程序,运行的结果是?( )defzfzh(s):c=''forchins:if"9">=ch>="0":c+=str(int(ch)+1)elif"z">=ch>="a":c+=chr(ord(ch)-ord("a")+ord("A"))returncs='hzag-21-8'print(zfzh(s))A. HZAG329B. 923HZAGC. GAZH329D. 923GAZH试题编号:20230614-fcl-010试题类型:单选题标准答案:A试题难度:较难试题解析:调用函数zfzh,注意字符串累加方式。考生答案:C考生得分:0是否评分:已评分评价描述:9. 在Python中,以下哪个代码是安装numpy模块的方法?()A. pipinstallnumpyB. pipuninstallnumpyC. installnumpyD. setupnumpy试题编号:20230702-xyr-024试题类型:单选题标准答案:A试题难度:容易试题解析:可以安装numpy模块的命令:pipinstallnumpy考生答案:A考生得分:2是否评分:已评分评价描述:10. 在Python中导入第三方库的主要关键字是?()A. fromB. importC. pipD. install试题编号:20230702-xyr-025试题类型:单选题标准答案:B试题难度:容易试题解析:在Python中导入第三方库的关键字是import。考生答案:C考生得分:0是否评分:已评分评价描述:11. 《阅微草堂笔记》里描述了槐树果实“响豆”,在夜里爆响,这种豆一棵树只有一粒,难以辨认出。所以古人就等槐树开花结果后,用许多布囊分别贮存豆荚,用来当枕头。夜里如果没有听到声音,便扔掉。如果有爆响声。然后把这一囊的豆荚又分成几个小囊装好,夜里再枕着听……如此这么分下去直到找到响豆。以上故事体现的算法是?()A. 顺序查找B. 枚举算法C. 解析算法D. 分治算法试题编号:20230704-TR-027试题类型:单选题标准答案:D试题难度:容易试题解析:分治算法的特征之一,就是将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题。考生答案:A考生得分:0是否评分:已评分评价描述:12. 下列哪项不是分治算法所具有的特征?()A. 求解问题的规模缩小到一定的程度就能够容易地解决B. 求解题可以分解为若干个规模较小的不同问题C. 利用求解问题分解出的子问题的解可以合并为该问题的解D. 求解问题所分解出的各个子问题是相互独立的试题编号:20230704-TR-028试题类型:单选题标准答案:B试题难度:较难试题解析:求解问题可以分解为若干个规模较小的相同问题。考生答案:A考生得分:0是否评分:已评分评价描述:13. 两位同学玩猜数字游戏,规则如下:一方在心里默想一个范围在1-100之间的数,如果另一方猜的数字比对方想的要大,就说大了;如果猜的数字比想的要小,就说小了,直到猜中数字。那么使用二分查找法最多需要猜测的次数是?()A. 10B. 8C. 7D. 6试题编号:20230704-TR-029试题类型:单选题标准答案:C试题难度:一般试题解析:相当于用二分法在1-100之间查找某个数字。考生答案:C考生得分:2是否评分:已评分评价描述:14. 用递推算法求解n个自然数的乘积,请问代码中横线上需要填入的正确代码是?()deffact(n):s=1foriinrange(1,n+1):s=s*ireturn________a=fact(5)print(a)A. sB. iC. fact(n-1)D. fact(n)试题编号:20230710-cqf-16试题类型:单选题标准答案:A试题难度:一般试题解析:deffact(n):s=1foriinrange(1,n+1):s=s*ireturnsa=fact(5)print(a)考生答案:D考生得分:0是否评分:已评分评价描述:15. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?可以用下列代码解决这个问题,请问这段代码是基于()算法编写的?high=100s=0sum=0foriinrange(10):s,high=high+high/2,high/2sum=sum+ssum=sum-highprint(sum)print(high)A. 递归B. 枚举C. 递推D. 二分试题编号:20230710-cqf-17试题类型:单选题标准答案:C试题难度:较难试题解析:递推按照一定的规律来计算序列中的第一项,而问题显然是一个等比数列,可以用递推来解决。代码中没有调用自身的情况,所以不是递归。考生答案:A考生得分:0是否评分:已评分评价描述:16. 用递归算法求1~n个连续自然数的乘积的代码如下,请选择合适的代码补全程序?( )defChengji(n):ifn<=1:return1else:return_____?______print(Chengji(3))A. n*Chengji(n)B. n*Chengji(n-1)C. n*Chengji(n+1)D. n×Chengji(n-1)试题编号:20230710-cqf-20试题类型:单选题标准答案:B试题难度:一般试题解析:defChengji(n):ifn<=1:return1else:returnn*Chengji(n-1)print(Chengji(3))考生答案:B考生得分:2是否评分:已评分评价描述:17. 有一根绳子,第一次剪去一半多2米,第二次剪去剩下的一半多2米,第三次剪去剩下的一半多2米,第四次剪去剩下的一半多2米,第五次剪去剩下的一半多2米,此时绳子还剩2米。这根绳子长几米?想解决这个问题的话,可以采用以下哪种算法?()A. 排序B. 递推C. 解析D. 枚举试题编号:20230710-cqf-21试题类型:单选题标准答案:B试题难度:一般试题解析:题目中的绳子长度是按相同的规律剪掉的,所以从后向前,可以按照这个规律来递推计算绳子的长度。考生答案:B考生得分:2是否评分:已评分评价描述:18. 小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个。第二天早上又将剩下的桃子吃一半,又多吃一个。以后每天早上吃前一天剩下的一半另加一个。到第5天早上猴子想再吃时,发现只剩下一个桃子了。问第一天猴子共摘多少个桃子?这个问题可以用递归来解决,代码如下:defpeach(day):ifday==1:return1return(peach(day-1)+1)*2s=peach(5)print('一共有%d只桃子'%(s))请问第2行的“ifday==1”代码起到的作用是?( )A. 结束递归的边界条件B. 开始递归的边界条件C. 调用自身D. 递归过程中的变化试题编号:20230710-cqf-22试题类型:单选题标准答案:A试题难度:较难试题解析:递归算法有明确的结束递归的边界条件(又称终止条件)以及结束时的边界值,可以通过条件语句(if语句)实现。考生答案:B考生得分:0是否评分:已评分评价描述:19. 下列代码可以求两个数的最小公倍数。请认真阅读下列代码运用了什么算法?()deflcm(s,m,n):ifs%n==0:returnselse:returnlcm(s+m,m,n)a=int(input('请输入第1个数:'))b=int(input('请输入第2个数:'))c=lcm(a,a,b)print('{}和{}的最小公倍数是{}'.format(a,b,c))A. 枚举B. 解析C. 递归D. 二分试题编号:20230710-cqf-26试题类型:单选题标准答案:C试题难度:较难试题解析:在定义一个函数或过程时,如果出现调用自身的成分,则称为递归。考生答案:A考生得分:0是否评分:已评分评价描述:20. 关于函数,正确的描述是?()A. 规范的函数设计都应该带有返回值B. 函数体中,只要遇到break关键字,函数就结束C. 函数体中,只要遇到return关键字,函数就结束D. 函数的返回值只能是整型、浮点型、布尔型和字符串试题编号:20230713-xm-008试题类型:单选题标准答案:C试题难度:一般试题解析:Python函数中,一旦遇到return关键字,函数就结束运行。考生答案:B考生得分:0是否评分:已评分评价描述:21. 关于全局变量和局部变量,正确的描述是?()A. 通俗来说,无缩进的变量都是全局变量B. 函数体中,只能使用局部变量C. Python程序中,全局变量与局部变量不允许重名D. 函数体中,只能通过实参传递的方式实现对全局变量数值的使用试题编号:20230713-xm-009试题类型:单选题标准答案:A试题难度:一般试题解析:无缩进的变量都在最上层,是全局变量。考生答案:C考生得分:0是否评分:已评分评价描述:22. 定义以下函数:deffunc(x,y,z=2):print(x+y+z)分别以func(1,2,3)和func(1,2)语句调用该函数,运行后的结果分别是?( )A. 6;出错B. 5;出错C. 5;5D. 6;5试题编号:20230713-xm-010试题类型:单选题标准答案:D试题难度:较难试题解析:Python中,形参设定了默认值后,在调用函数时还可以为该形参再传入新值。func(1,2,3)的值是6,func(1,2)的值是5。考生答案:D考生得分:2是否评分:已评分评价描述:23. 在嵌套函数中,也就是一个函数里面还有一个函数,如果内部函数需要修改外部变量的值,处理的方法是?()A. 只能通过不定长参数传递来实现B. 使用local关键字C. 使用nonlocal关键字D. 使用global关键字试题编号:20230713-xm-011试题类型:单选题标准答案:D试题难度:一般试题解析:Python嵌套函数中,如果内部函数需要修改外部变量的值,要使用global关键字。考生答案:C考生得分:0是否评分:已评分评价描述:24. 在自定义函数中,如果发现局部变量与全局变量同名,则?()A. 程序会出现语法错,不能运行B. 程序可以运行,局部变量与全局变量互不干扰C. 可能会出现局部变量修改全局变量的值的情况,需要检查程序设计是否合理D. 不允许出现这种情况,应该采用参数传递的方法去解决问题试题编号:20230713-xm-012试题类型:单选题标准答案:C试题难度:一般试题解析:在Python函数中,如果局部变量与全局变量同名,则局部变量屏蔽全局变量。考生答案:C考生得分:2是否评分:已评分评价描述:25. 考察以下函数定义代码:deffunc(x:int,y:str)->str:z=x*yreturnz以下陈述正确的是?()A. Python是一种动态类型语言,不强制要求指定参数类型,上述代码行是不符合Python语法的B. 为提高程序的可靠性,Python函数定义时允许为形参指定数据类型,也允许为返回值指定类型C. 由于为函数指定了返回值类型,变量z一定要做类型转换后,才能用于上述return语句中D. 由于为形参指定了不同的数据类型,变量x和y也需要先做类型转换后才能进行上述运算试题编号:20230713-xm-013试题类型:单选题标准答案:B试题难度:较难试题解析:Python不强制要求指定参数类型,但是为提高程序的可靠性,Python函数定义时允许为形参指定数据类型,也允许为返回值指定类型。考生答案:D考生得分:0是否评分:已评分评价描述:二、判断题(共10题,共20分)26. 函数是将实现相同功能的代码封装在一起,实现代码复用。()正确 错误 试题编号:20230614-fcl-003试题类型:判断题标准答案:正确试题难度:一般试题解析:函数是将实现相同功能的代码封装在一起,实现代码复用。考生答案:正确考生得分:2是否评分:已评分评价描述:27. 关键字实参通过“关键字=值”的方式传值,函数参数全部采用此方式传值时,不需要考虑函数调用过程中形参的顺序。()正确 错误 试题编号:20230614-fcl-005试题类型:判断题标准答案:正确试题难度:一般试题解析:函数的概念。考生答案:错误考生得分:0是否评分:已评分评价描述:28. 函数的定义代码不需要在主程序调用函数之前。()正确 错误 试题编号:20230614-fcl-006试题类型:判断题标准答案:错误试题难度:一般试题解析:函数必须先定义才能调用。考生答案:正确考生得分:0是否评分:已评分评价描述:29. 命令pipdownload<第三方库>表示下载并安装指定的第三方库。()正确 错误 试题编号:20230702-xyr-035试题类型:判断题标准答案:错误试题难度:一般试题解析:该命令为下载但不安装。考生答案:错误考生得分:2是否评分:已评分评价描述:30. 二分查找又称对折半查找,例如:在数列34、17、25、9、10、3中查找3,适合采用二分查找法。()正确 错误 试题编号:20230704-TR-030试题类型:判断题标准答案:错误试题难度:容易试题解析:二分查找是一种应用于有序数列的高效查找算法。考生答案:正确考生得分:0是否评分:已评分评价描述:31. 递归算法不涉及高深的数学知识,使得很多比较复杂的问题,也可以用简洁的代码解决,代码的执行效率比较高,所以即使有其他算法可行,也应该首选递归算法解决问题。()正确 错误 试题编号:20230710-cqf-18试题类型:判断题标准答案:错误试题难度:容易试题解析:递归算法代码运行时会引起一系列函数调用,有不少重复计算,其执效率比较低。考生答案:错误考生得分:2是否评分:已评分评价描述:32. 递归算法中,必然存在函数体内调用自身的情况,可以在最后调用,也可以在中间调用。()正确 错误 试题编号:20230710-cqf-19试题类型:判断题标准答案:正确试题难度:较难试题解析:在定义一个函数或过程时,如果出现调用自身的成分,则称为递归。调用自身的位置根据具体情况而定,不强制要求在最后才能调用自身。考生答案:错误考生得分:0是否评分:已评分评价描述:33. Python程序中,自定义函数可以放在整个程序的开头,也可以放在主程序之后,比较自由。()正确 错误 试题编号:20230713-xm-029试题类型:判断题标准答案:错误试题难度:一般试题解析:Python程序中,自定义函数要放在主程序之前。考生答案:错误考生得分:2是否评分:已评分评价描述:34. 通过把某些特定功能语句设计成自定义函数,可以简化主程序的编写。()正确 错误 试题编号:20230713-xm-030试题类型:判断题标准答案:正确试题难度:一般试题解析:通过函数调用,可以简化主程序的编写。考生答案:正确考生得分:2是否评分:已评分评价描述:35. 下面代码的时间复杂度为O(n*n)。( )arr=[2,3,4,10,40]n=len(arr)foriinrange(n):forjinrange(0,n-i-1):ifarr[j]>arr[j+1]:arr[j],arr[j+1]=arr[j+1],arr[j]正确 错误 试题编号:202306-zj-034试题类型:判断题标准答案:正确试题难度:一般试题解析:双重循环,时间复杂度为O(n*n)。考生答案:正确考生得分:2是否评分:已评分评价描述:三、编程题(共3题,共30分)36. 从键盘上分别输入要查找和替换的字符串,对文本文件进行查找与替换,替换后保存到新的文本文件中。思路:输入待查找字符串s,需查找子字符串key和替换字符串new,通过调用自定义函数replace实现替换。完善划线处代码。s=input("请输入待查找的字符串:")key=input("请输入需查找的子字符串:")new=input("请输入要替换的字符串:")deffindstr(key,s,begin):foriinrange(begin,len(s)-len(key)+1):ifs[i:①]==key:returnireturn-1defreplace(key,new,s):begin=0whilebegin<②:pos=findstr(key,s,begin)ifpos==-1:breakelse:s=s[0:pos]+new+s[pos+len(key):③]begin=pos+len(key)returnsrst=④#调用函数替换字符print(rst)试题编号:202309-P4-36试题类型:编程题标准答案:参考程序:s=input("请输入待查找的字符串:")key=input("请输入需查找的子字符串:")new=input("请输入要替换的字符串:")deffindstr(key,s,begin):foriinrange(begin,len(s)-len(key)+1):ifs[i:i+len(key)]==key:returnireturn-1defreplace(key,new,s):begin=0whilebegin<len(s)-len(key)+1:pos=findstr(key,s,begin)ifpos==-1:breakelse:s=s[0:pos]+new+s[pos+len(key):len(s)]begin=pos+len(key)returnsrst=replace(key,new,s)#调用函数替换字符print(rst)试题难度:一般试题解析:评分标准:(1)i+len(key)或等价答案;(3分)(2)len(s)-len(key)+1或等价答案;(3分)(3)len(s)或等价答案;(3分)(4)replace(key,new,s)或等价答案。(3分)展示地址:点击浏览考生答案:(此题已作答)考生得分:0是否评分:已评分评价描述:37. 一个列表中存在n个数据,可以用分治算法来找到其中的最小值。具体过程如下:如果列表元素的个数小于等于2的时候,经过一个判断就找到其中的最小值,所以可以先把数据从中间划分为左右两部分,然后通过递归把每一部分再划分为左右两部分,直到数据规模小于等于2的时候,返回结果,然后通过递归到最后为两个数据对比,我们就可以找到最小值。请根据以上算法过程,补全代码。#求列表中小于两个元素的最小值defget_min(number):iflen(number)==1:return①else:ifnumber[1]>number[0]:returnnumber[0]else:returnnumber[1]defsolve(number):n=len(number)ifn<=2:returnget_min(number)else:#将整个列表分为左右两部分left_list,right_list=②,number[n//2:]#递归(树),分治left_min,right_min=solve(left_list),③returnget_min([left_min,right_min])test_list=[5,11,3,2,7,9]print(solve(test_list))试题编号:202309-P4-37试题类型:编程题标准答案:参考程序:#求列表中小于两个元素的最小值defget_min(number):iflen(number)==1:returnnumber[0]else:ifnumber[1]>number[0]:returnnumber[0]else:returnnumber[1]defsolve(number):n=len(number)ifn<=2:returnget_min(number)else:#将整个列表分为左右两部分left_list,right_list=number[:n//2],number[n//2:]#递归(树),分治left_min,right_min=solve(left_list),solve(right_list)returnget_min([left_min,right_min])test_list=[5,11,3,2,7,9]print(solve(test_list))试题难度:较难试题解析:评分标准:(1)number[0];(2分)(2)number[:n//2];(3分)(3)solve(right_list)。(3分)展示地址:点击浏览考生答案:(此题已作答)考生得分:8是否评分:已评分评价描述:38. 未来居民社区设计有一个机器人服务中心,假如某社区有若干栋住宅楼,每栋楼的位置可以由坐标(x,y)表示,其中x坐标表示居民楼的东西向位置,y坐标表示居民楼的南北向位置。这里约定,社区中任意2点(x1,y1)和(x2,y2)的之间的距离使用数值|x1-x2|+|y1-y2|来度量。要求为社区选择建立机器人服务中心的最佳位置,使各个居民点到机器人服务中心的距离总和最小。以下是机器人服务中心的选址程序,采用取各坐标中位数的方法来确定中心位置,请补充完成该程序。注:中位数的含义:一组按大小顺序排列起来的数据中处于中间位置的数。当有奇数个数据时,中位数就是中间那个数;当有偶数个数据时,中位数就是中间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论