资源简介 2022年12月青少年软件编程(Python)等级考试4级试题一、单选题(共25题,共50分)1.有n个按名称排序的商品,使用对分查找法搜索任何一商品,最多查找次数为5次,则n的值可能为?( ) A. 5B. 15C. 30D. 35 2.下列有关分治算法思想的描述不正确的是?( ) A. 将问题分解成的子问题具有相同的模式B. 当问题足够小时,可以直接求解C. 可以将子问题的结果合并成原问题的解D. 将问题分解出的各个子问题相互包含,相互之间可以有公共子问题 3.下列问题使用分治算法思想的是?( )A. 求100以内的素数B. 求100个整数之和C. 求斐波那契数列第n项D. 快速排序算法对n个数排序 4.李宇同学利用Python语言编写了一段“根据出生年月判断生肖属相”的程序,调试运行时,程序没有报错且顺利运行,但未能正确输出对应属相,造成这个结果的原因可能是?( ) A. 程序语句语法错误B. 时间复杂度太高C. 求解算法逻辑错误D. Python环境配置不对 5.一般来说,递归需要有边界条件、递归前进段和递归返回段。当不满足边界条件时,( );当满足边界条件时,( )。 A. 返回,前进B. 中断,前进C. 前进,返回D. 中断,返回 6.以下哪一项不是递归算法的特征?( )A. 要实现递归必须有一个函数,并且在这个函数体内要自己调用自己。B. 递归必须要有判断条件,这个判断条件可以是判断次数。C. 到达判断的条件后必须有返回,目的是结束递归。D. 未到达判断条件时,不可以返回该函数。 7.关于斐波那契数列,下列空白处的代码填写正确的是?( ) def func(num): if num==1: return 1 elif num==2: return 1 else: lst=[] b=input('请输入选择的数字:') b1=int(b) for a in range(1,b1+1): print(func(a)) lst.append(func(a)) a+=1 print(lst) A. return func(num+1)+func(num-2)B. return func(num-1)+func(num)C. return func(num-1)+func(num-2)D. return func(num-1)+func(num+2) 8.在有序列表[2,3,10,15,20,25,28,29,30,35,40]中,使用二分法查找20,需要查找多少次能找到?( ) A. 5B. 4C. 3D. 2 9.下列程序输出正确的是?( ) def ac(n): if n < 0: return else: ac(n-1) print(n) ac(4) A. 0,1,2,3,4B. 1,2,3,4C. 0 1 2 3 4D. 1 2 3 4 10.阅读下列程序,运行结果正确的是?( ) def power(x,y): if y==0: return 1 else: return x * power(x,y-1) print(power(4,5)) A. 243B. 81C. 1206D. 1024 11.下载但不安装一个第三方库的命令格式是?( ) A. pip search 第三方库名B. pip uninstall 第三方库名C. pip install 第三方库名D. pip download 第三方库名 12.不需要使用Python的pip工具安装的是?( ) A. Python标准库B. 第三方库C. 用户自己开发的库D. Python扩展库 14.关于函数,以下选项中描述错误的是?( ) A. 函数是一段具有特定功能的、可重用的语句组。B. 函数能完成特定的功能,对函数的调用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。C. 使用函数的主要目的是减低编程难度和代码重用。D. Python 使用“del”保留字定义一个函数。 15.某自定义函数有两个参数,并且这两个参数都指定了默认值。我们在调用这个函数时,最少需要提供几个实参?( ) A. 0B. 1C. 2D. 3 16.以下关于Python中使用函数的描述,错误的是?( ) A. 程序里一定要有main函数。B. 使用函数前要先定义函数。C. 函数在被调用时才执行。D. 函数执行结束后,程序执行流程会自动返回到函数被调用的语句之后。 17.在Python中,函数通过可变参数*args传入的参数,在函数内以哪种数据类型存储?( ) A. 元组B. 列表C. 集合D. 字典 18.下列关于函数调用的说法正确的是?( ) A. 调用函数时一定要赋值。B. 只要安装成功第三方库,不要导入,就可以直接调用第三方库里的函数。C. Python内置的标准函数可以多次调用。D. 函数调用时,如果参数有默认值,就不能给它再赋新的值了。 19.自定义函数的关键字是?( ) A. defineB. delC. defD. dfe 20.下列选项中不能作为自定义函数名的是?( ) A. IntB. _int2C. str2intD. 2_int 21.函数定义如下: def func(a,b=0,c=0): pass 下列选项调用错误的是?( ) A. func(1)B. func(1,2)C. func(1, ,3)D. func(1,2,3) 22.下列选项中,函数定义错误的是?( ) A. def afunc(a,b=2):B. def bfunc(a,b):C. def cfunc(a,*b):D. def dfunc(*a,b): 24.下列关于函数的说法正确的是?( ) A. 一个函数在同一个程序中最多只能被调用999次B. 函数的返回值不可以赋值给变量C. 使用Python内置模块里的函数时,要先导入该模块到当前文件中D. 调用没有参数的函数时可以不带圆括号 25.下列选项中,不是函数的是?( ) A. max()B. input()C. string()D. sum() 二、判断题(共10题,共20分)26.计算下面这段程序的时间复杂度为平方阶:O(n^2)。( )sum1=0for i in range(101): sum1+=i 正确 错误 27.汉诺塔游戏是递归调用的经典案例。( ) 正确 错误 试题编号:20220501-zwy-029 28.递推关系是递归的重要组成。( ) 正确 错误 29.以下命令:pip get pandas用于下载第三方库pandas,但不马上安装。( ) 正确 错误 30.使用Python语言编程,可以定义一个名叫pass的函数。( ) 正确 错误 31.函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为True。( ) 正确 错误 32.在Python中调用函数的时候,必须将每个实参都关联到函数定义中的每一个形参,最简单的关联方式就是基于实参的顺序。但也可以通过关键字实参的“关键字-值”方式关联形参,这时就不必考虑函数调用过程中实参的顺序。( ) 正确 错误 33.在Python中,全局变量名和局部变量名一定不能重名。( ) 正确 错误 34.调用函数时,Python将形式参数传递给实际参数。( ) 正确 错误 35.分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。( ) 正确 错误 三、编程题(共3题,共30分)36.从键盘接收一组不重复整数,并将这组整数按从小到大的顺序排列。以下程序采取快速排序法对这组整数进行排序。快速排序法的原理是:(1)取这组数据中间那个数为锚定值mid;(2)从这组数据开头往右找,遇到比mid大的数则停下,位置记为i;(3)从这组数据末尾往左找,遇到比mid小的数则停下,位置记为j;(4)如果此时i仍在j左边,即i<=j,则交换这两个数;(5)重复(2)~(4)直到i、j重合;(6)对i左边的数进行快速排序;(7)对右边的数进行快速排序。输入示例:请输入需要排序的一组整数,数与数之间用空格隔开:6 10 11 8 4 1 9 7输出示例:排序结果:1 4 6 7 8 9 10 11 程序模板:def QuickSort(left,right): if ① : return mid=Numbers[left+(right-left)//2] i=left j=right while i while Numbers[i] i+=1 while Numbers[j]>mid: j-=1 if i<=j: ② QuickSort(left,j-1) QuickSort(i+1,right) Numbers=list(map(int,input("请输入需要排序的一组整数,数与数之间用空格隔开:"). ③ )) QuickSort(0, ④ ) print("排序结果:",end="") for i in Numbers: print(i,end=" ") 37.鸡兔同笼是中国古代的数学名题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?意思是:有若干只鸡兔同在一个笼子里(笼中最少有一只鸡和一只兔),从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔? 今天我们用编程的方法来求解一下这道数学命题吧。 def ji_tu(head,leg): j=0 t=0 while j j += 1 t = ① if (leg== ② ): print('有鸡{}只,有兔子{}只。'.format( ③ )) return (j,t) while True: try: sum_head=int(input('请输入总头数:')) sum_leg=int(input('请输入总脚数:')) if ④ : print('输入鸡和兔子的总头数或总脚数错误,请重新输入!') else: ji_tu( ⑤ ) except: print('能不能正常输入数据?') 38.有一个游戏:有两个人,第一个人先从1和2中挑一个数字,第二个人可以在对方的基础上选择加1或者加2,然后又轮到第一个人,他也可以选择加1或者加2,之后再把选择权交给对方,就这样双方交替地选择加1或者加2,谁先加到20,谁就赢了。在不考虑谁输谁赢的情况下,从一开始(以1或2为起点)加到20,有多少种不同的递加过程?比如1,4,7,10,12,15,18,20算一种;2,5,8,11,14,17,20又是一种。那么一共会有多少种这样的过程呢?我们可以用递归算法来解决这个问题,请补全代码。def guo_cheng(n): if ① : return 1 return ② # 输出所有过程的个数 print (guo_cheng( ③ )) 2022年12月青少年软件编程(Python)等级考试4级试题答案解析一、单选题(共25题,共50分)1.有n个按名称排序的商品,使用对分查找法搜索任何一商品,最多查找次数为5次,则n的值可能为?( ) A. 5B. 15C. 30D. 35 试题编号:20220428-fcl-017 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:对分查找最多查找次数m与个数之间n的关系是:n对2的对数的取整后加1,现在最多查找次数是5次,因此n的取值范围在[2^4+1,2^5]即[16,31]之间,因此选C。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:2.下列有关分治算法思想的描述不正确的是?( ) A. 将问题分解成的子问题具有相同的模式B. 当问题足够小时,可以直接求解C. 可以将子问题的结果合并成原问题的解D. 将问题分解出的各个子问题相互包含,相互之间可以有公共子问题 试题编号:20220428-fcl-020 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:将问题分解出的各个子问题是相互独立的,即子问题之间不包含公共子子问题 考生答案:D 考生得分:2 是否评分:已评分 评价描述:3.下列问题使用分治算法思想的是?( )A. 求100以内的素数B. 求100个整数之和C. 求斐波那契数列第n项D. 快速排序算法对n个数排序 试题编号:20220428-fcl-022 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:快速排序算法使用了分治算法。因此选D。 考生答案:D 考生得分:2 是否评分:已评分 评价描述:4.李宇同学利用Python语言编写了一段“根据出生年月判断生肖属相”的程序,调试运行时,程序没有报错且顺利运行,但未能正确输出对应属相,造成这个结果的原因可能是?( ) A. 程序语句语法错误B. 时间复杂度太高C. 求解算法逻辑错误D. Python环境配置不对 试题编号:20220501-tr-031 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:程序能正常运行,排除了其他三个可能。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:5.一般来说,递归需要有边界条件、递归前进段和递归返回段。当不满足边界条件时,( );当满足边界条件时,( )。 A. 返回,前进B. 中断,前进C. 前进,返回D. 中断,返回 试题编号:20220501-zwy-003 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:递归运行的条件,不满足边界条件前进,满足返回。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:6.以下哪一项不是递归算法的特征?( )A. 要实现递归必须有一个函数,并且在这个函数体内要自己调用自己。B. 递归必须要有判断条件,这个判断条件可以是判断次数。C. 到达判断的条件后必须有返回,目的是结束递归。D. 未到达判断条件时,不可以返回该函数。 试题编号:20220501-zwy-016 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:未到达判断条件时,可以返回该函数,也可以不返回。 考生答案:D 考生得分:2 是否评分:已评分 评价描述:7.关于斐波那契数列,下列空白处的代码填写正确的是?( ) def func(num): if num==1: return 1 elif num==2: return 1 else: lst=[] b=input('请输入选择的数字:') b1=int(b) for a in range(1,b1+1): print(func(a)) lst.append(func(a)) a+=1 print(lst) A. return func(num+1)+func(num-2)B. return func(num-1)+func(num)C. return func(num-1)+func(num-2)D. return func(num-1)+func(num+2) 试题编号:20220501-zwy-017 试题类型:单选题 标准答案:C 试题难度:较难 试题解析:斐波那契数列,从第三项开始,每一项都等于前两项之和。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:8.在有序列表[2,3,10,15,20,25,28,29,30,35,40]中,使用二分法查找20,需要查找多少次能找到?( ) A. 5B. 4C. 3D. 2 试题编号:20220501-zwy-019 试题类型:单选题 标准答案:B 试题难度:容易 试题解析:可以模拟二分法的执行过程分析得出。 考生答案:B 考生得分:2 是否评分:已评分 评价描述:9.下列程序输出正确的是?( ) def ac(n): if n < 0: return else: ac(n-1) print(n) ac(4) A. 0,1,2,3,4B. 1,2,3,4C. 0 1 2 3 4D. 1 2 3 4 试题编号:20220501-zwy-020 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:依次输出0-4,print()默认换行。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:10.阅读下列程序,运行结果正确的是?( ) def power(x,y): if y==0: return 1 else: return x * power(x,y-1) print(power(4,5)) A. 243B. 81C. 1206D. 1024 试题编号:20220501-zwy-023 试题类型:单选题 标准答案:D 试题难度:较难 试题解析:power(a,b)表示a的b次幂,当y不等于0,返回x*power(x,y-1)。据题,x=4,y=5,因此4*power(4,4),即4*(4的4次幂),结果为1024。 考生答案:D 考生得分:2 是否评分:已评分 评价描述:11.下载但不安装一个第三方库的命令格式是?( ) A. pip search 第三方库名B. pip uninstall 第三方库名C. pip install 第三方库名D. pip download 第三方库名 试题编号:20220502-cj-001 试题类型:单选题 标准答案:D 试题难度:容易 试题解析:pip search为搜索三方包pip install为安装三方包pip uninstall为卸载三方包 考生答案:A 考生得分:0 是否评分:已评分 评价描述:12.不需要使用Python的pip工具安装的是?( ) A. Python标准库B. 第三方库C. 用户自己开发的库D. Python扩展库 试题编号:20220502-cj-002 试题类型:单选题 标准答案:A 试题难度:容易 试题解析:其它要安装 考生答案:A 考生得分:2 是否评分:已评分 评价描述:13.使用lambda定义匿名函数如下:f=lambda x:x+1,则f(f(1))代码运行结果是?( )A. 1B. 2C. 3D. 会报错 试题编号:20220502-cj-005 试题类型:单选题 标准答案:C 试题难度:较难 试题解析:f(1)=2,f(2)=3 考生答案:C 考生得分:2 是否评分:已评分 评价描述:14.关于函数,以下选项中描述错误的是?( ) A. 函数是一段具有特定功能的、可重用的语句组。B. 函数能完成特定的功能,对函数的调用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。C. 使用函数的主要目的是减低编程难度和代码重用。D. Python 使用“del”保留字定义一个函数。 试题编号:20220502-cj-008 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:Python 使用“def”保留字定义一个函数。 考生答案:D 考生得分:2 是否评分:已评分 评价描述:15.某自定义函数有两个参数,并且这两个参数都指定了默认值。我们在调用这个函数时,最少需要提供几个实参?( ) A. 0B. 1C. 2D. 3 试题编号:20220502-cj-010 试题类型:单选题 标准答案:A 试题难度:容易 试题解析:只要有默认值就可以省略。 考生答案:A 考生得分:2 是否评分:已评分 评价描述:16.以下关于Python中使用函数的描述,错误的是?( ) A. 程序里一定要有main函数。B. 使用函数前要先定义函数。C. 函数在被调用时才执行。D. 函数执行结束后,程序执行流程会自动返回到函数被调用的语句之后。 试题编号:20220502-cj-013 试题类型:单选题 标准答案:A 试题难度:一般 试题解析:Python程序不必一定要有main函数。 考生答案:A 考生得分:2 是否评分:已评分 评价描述:17.在Python中,函数通过可变参数*args传入的参数,在函数内以哪种数据类型存储?( ) A. 元组B. 列表C. 集合D. 字典 试题编号:20220502-cj-014 试题类型:单选题 标准答案:A 试题难度:一般 试题解析:可变参数在函数内以元组方式存储。 考生答案:A 考生得分:2 是否评分:已评分 评价描述:18.下列关于函数调用的说法正确的是?( ) A. 调用函数时一定要赋值。B. 只要安装成功第三方库,不要导入,就可以直接调用第三方库里的函数。C. Python内置的标准函数可以多次调用。D. 函数调用时,如果参数有默认值,就不能给它再赋新的值了。 试题编号:20220516-cqf-11 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:调用函数时不一定是必须要给参数赋值的;先导入第三方库,再调用第三方库里的函数;有默认值的参数也可以赋新值。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:19.自定义函数的关键字是?( ) A. defineB. delC. defD. dfe 试题编号:20220516-cqf-12 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:自定义函数的关键字是def。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:20.下列选项中不能作为自定义函数名的是?( ) A. IntB. _int2C. str2intD. 2_int 试题编号:20220516-cqf-13 试题类型:单选题 标准答案:D 试题难度:容易 试题解析:函数名不能以数字开头。 考生答案:D 考生得分:2 是否评分:已评分 评价描述:21.函数定义如下: def func(a,b=0,c=0): pass 下列选项调用错误的是?( ) A. func(1)B. func(1,2)C. func(1, ,3)D. func(1,2,3) 试题编号:20220516-cqf-16 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:C选项中连续输入了两个逗号,解释器会报语法错误。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:22.下列选项中,函数定义错误的是?( ) A. def afunc(a,b=2):B. def bfunc(a,b):C. def cfunc(a,*b):D. def dfunc(*a,b): 试题编号:20220516-cqf-17 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:可变参数必须在不可变参数的后面。 考生答案:D 考生得分:2 是否评分:已评分 评价描述:23.运行下列代码,输出结果为?( ) def func(a,b,*args): print(a) print(b) print(args) func(1,2,3,4,5,6) A. 1,2,3,4,5,6B. 1 2 (3,4,5,6)C. 1 2 [3,4,5,6]D. 1 2 3,4,5,6 试题编号:20220516-cqf-18 试题类型:单选题 标准答案:B 试题难度:较难 试题解析:a,b是位置参数,所以a=1,b=2,其余的参数会被*args收集打包放进一个元组中,即(3,4,5,6)。 考生答案:B 考生得分:2 是否评分:已评分 评价描述:24.下列关于函数的说法正确的是?( ) A. 一个函数在同一个程序中最多只能被调用999次B. 函数的返回值不可以赋值给变量C. 使用Python内置模块里的函数时,要先导入该模块到当前文件中D. 调用没有参数的函数时可以不带圆括号 试题编号:20220516-cqf-2 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:函数的调用次数没有限制,A错误;函数的返回值可以赋值给变量,B错误;调用没有参数的函数时,函数名后面也要跟一对圆括号,D错误。 考生答案:C 考生得分:2 是否评分:已评分 评价描述:25.下列选项中,不是函数的是?( ) A. max()B. input()C. string()D. sum() 试题编号:20220516-cqf-6 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:Python中string为模块 考生答案:C 考生得分:2 是否评分:已评分 评价描述:二、判断题(共10题,共20分)26.计算下面这段程序的时间复杂度为平方阶:O(n^2)。( )sum1=0for i in range(101): sum1+=i 正确 错误 试题编号:20220501-tr-032 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:时间复杂度为线性阶,计O(n)。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述:27.汉诺塔游戏是递归调用的经典案例。( ) 正确 错误 试题编号:20220501-zwy-029 试题类型:判断题 标准答案:正确 试题难度:容易 试题解析:汉诺塔是学习递归算法最为常见的例子。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述:28.递推关系是递归的重要组成。( ) 正确 错误 试题编号:20220501-zwy-030 试题类型:判断题 标准答案:正确 试题难度:一般 试题解析:对于递归而言,递推与回归,二者缺一不可。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述:29.以下命令:pip get pandas用于下载第三方库pandas,但不马上安装。( ) 正确 错误 试题编号:20220502-cj-003 试题类型:判断题 标准答案:错误 试题难度:容易 试题解析:没有get这个命令。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述:30.使用Python语言编程,可以定义一个名叫pass的函数。( ) 正确 错误 试题编号:20220502-cj-011 试题类型:判断题 标准答案:错误 试题难度:容易 试题解析:pass是保留字。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述:31.函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为True。( ) 正确 错误 试题编号:20220502-cj-012 试题类型:判断题 标准答案:错误 试题难度:容易 试题解析:返回值为None 考生答案:错误 考生得分:2 是否评分:已评分 评价描述:32.在Python中调用函数的时候,必须将每个实参都关联到函数定义中的每一个形参,最简单的关联方式就是基于实参的顺序。但也可以通过关键字实参的“关键字-值”方式关联形参,这时就不必考虑函数调用过程中实参的顺序。( ) 正确 错误 试题编号:20220503-cj-002 试题类型:判断题 标准答案:正确 试题难度:容易 试题解析: 考生答案:正确 考生得分:2 是否评分:已评分 评价描述:33.在Python中,全局变量名和局部变量名一定不能重名。( ) 正确 错误 试题编号:20220516-cqf-14 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:全局变量名和局部变量名可以是相同的变量名。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述:34.调用函数时,Python将形式参数传递给实际参数。( ) 正确 错误 试题编号:20220516-cqf-15 试题类型:判断题 标准答案:错误 试题难度:容易 试题解析:调用函数时,Python将实际参数传递给形式参数。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述:35.分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。( ) 正确 错误 试题编号:20220428-fcl-030 试题类型:判断题 标准答案:正确 试题难度:容易 试题解析:分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述:三、编程题(共3题,共30分)36.从键盘接收一组不重复整数,并将这组整数按从小到大的顺序排列。以下程序采取快速排序法对这组整数进行排序。快速排序法的原理是:(1)取这组数据中间那个数为锚定值mid;(2)从这组数据开头往右找,遇到比mid大的数则停下,位置记为i;(3)从这组数据末尾往左找,遇到比mid小的数则停下,位置记为j;(4)如果此时i仍在j左边,即i<=j,则交换这两个数;(5)重复(2)~(4)直到i、j重合;(6)对i左边的数进行快速排序;(7)对右边的数进行快速排序。输入示例:请输入需要排序的一组整数,数与数之间用空格隔开:6 10 11 8 4 1 9 7输出示例:排序结果:1 4 6 7 8 9 10 11 程序模板:def QuickSort(left,right): if ① : return mid=Numbers[left+(right-left)//2] i=left j=right while i while Numbers[i] i+=1 while Numbers[j]>mid: j-=1 if i<=j: ② QuickSort(left,j-1) QuickSort(i+1,right) Numbers=list(map(int,input("请输入需要排序的一组整数,数与数之间用空格隔开:"). ③ )) QuickSort(0, ④ ) print("排序结果:",end="") for i in Numbers: print(i,end=" ") 试题编号:202212-P4-36 试题类型:编程题 标准答案:参考程序:def QuickSort(left,right):if left>=right: return mid=Numbers[left+(right-left)//2] i=left j=right while i while Numbers[i] i+=1 while Numbers[j]>mid: j-=1 if i<=j: Numbers[i],Numbers[j]=Numbers[j],Numbers[i] QuickSort(left,j-1) QuickSort(i+1,right) Numbers=list(map(int,input("请输入需要排序的一组整数,数与数之间用空格隔开:").split())) QuickSort(0,len(Numbers)-1) print("排序结果:",end="") for i in Numbers: print(i,end=" ") 试题难度:较难 试题解析:评分标准:(1)left>=right;(2分)(2)Numbers[i],Numbers[j]=Numbers[j],Numbers[i];(2分)(3)split();(2分)(4)len(Numbers)-1。(2分) 37.鸡兔同笼是中国古代的数学名题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?意思是:有若干只鸡兔同在一个笼子里(笼中最少有一只鸡和一只兔),从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔? 今天我们用编程的方法来求解一下这道数学命题吧。 def ji_tu(head,leg): j=0 t=0 while j j += 1 t = ① if (leg== ② ): print('有鸡{}只,有兔子{}只。'.format( ③ )) return (j,t) while True: try: sum_head=int(input('请输入总头数:')) sum_leg=int(input('请输入总脚数:')) if ④ : print('输入鸡和兔子的总头数或总脚数错误,请重新输入!') else: ji_tu( ⑤ ) except: print('能不能正常输入数据?') 试题编号:202212-P4-37 试题类型:编程题 标准答案:参考程序:def ji_tu(head,leg): j=0 t=0 while j j += 1 t = head-j if (leg==(j*2+t*4)): print('有鸡{}只,有兔子{}只。'.format(j,t)) return (j,t) while True: try: sum_head=int(input('请输入总头数:')) sum_leg=int(input('请输入总脚数:')) if sum_head<2 or sum_leg<6: print('输入鸡和兔子的总头数或总脚数错误,请重新输入!') else: ji_tu(sum_head,sum_leg) except: print('能不能正常输入数据?') 试题难度:一般 试题解析:评分标准:(1)head-j ; (2分)(2)(j*2+t*4); (3分)(3)j,t; (2分) (4)sum_head<2 or sum_leg<6 ; (3分)(5)sum_head,sum_leg。 (2分) 38.有一个游戏:有两个人,第一个人先从1和2中挑一个数字,第二个人可以在对方的基础上选择加1或者加2,然后又轮到第一个人,他也可以选择加1或者加2,之后再把选择权交给对方,就这样双方交替地选择加1或者加2,谁先加到20,谁就赢了。在不考虑谁输谁赢的情况下,从一开始(以1或2为起点)加到20,有多少种不同的递加过程?比如1,4,7,10,12,15,18,20算一种;2,5,8,11,14,17,20又是一种。那么一共会有多少种这样的过程呢?我们可以用递归算法来解决这个问题,请补全代码。def guo_cheng(n): if ① : return 1 return ② # 输出所有过程的个数 print (guo_cheng( ③ )) 试题编号:202212-P4-38 试题类型:编程题 标准答案:参考程序:def guo_cheng(n): if n==1 or n==2: return 1 return guo_cheng(n-1)+guo_cheng(n-2) # 输出所有过程的个数 print (guo_cheng(20)) 试题难度:一般 试题解析:评分标准: (1)n==1 or n==2; (3分)(2)guo_cheng(n-1)+guo_cheng(n-2) ; (4分) (3)20 。 (3分) 展开更多...... 收起↑ 资源列表 全国电子信息学会2022年12月6年级下学期Python编程考试4级试题.docx 全国电子信息学会2022年12月6年级下学期Python编程考试4级试题答案解析.docx