盾思途旅游网站建设,深圳产品设计公司排名前十强,如何实现wordpress伪静态化,wordpress 幻灯片主题青少年软件编程#xff08;Python#xff09;等级考试试卷#xff08;四级#xff09;
一、单选题(共25题#xff0c;共50分) 1. 有n个按名称排序的商品#xff0c;使用对分查找法搜索任何一商品#xff0c; 最多查找次数为5次#xff0c;则n的值可能为#xff1f;Python等级考试试卷四级
一、单选题(共25题共50分) 1. 有n个按名称排序的商品使用对分查找法搜索任何一商品 最多查找次数为5次则n的值可能为 A. 5 B. 15 C. 30 D. 35 试题编号20220428-fcl-017 试题类型单选题 标准答案C 试题难度一般 试题解析对分查找最多查找次数m与个数之间n的关系是n对2的对数的取整后加1 现在最多查找次数是5次因此n的取值范围在[2^41,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。 考生答案C 考生得分0 是否评分已评分 评价描述 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 num1: return 1 elif num2: return 1 else: lst[] binput(请输入选择的数字) b1int(b) for a in range(1,b11): print(func(a)) lst.append(func(a)) a1 print(lst) A. return func(num1)func(num-2) B. return func(num-1)func(num) C. return func(num-1)func(num-2) D. return func(num-1)func(num2) 试题编号20220501-zwy-017 试题类型单选题 标准答案C 试题难度较难 试题解析斐波那契数列从第三项开始,每一项都等于前两项之和。 考生答案C 考生得分2 是否评分已评分 评价描述 8. 在有序列表[23101520252829303540]中使用二分法查找20 需要查找多少次能找到 A. 5 B. 4 C. 3 D. 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,4 B. 1,2,3,4 C. 0 1 2 3 D. 1 2 3 4 试题编号20220501-zwy-020 试题类型单选题 标准答案C 试题难度一般 试题解析依次输出0-4print()默认换行。 考生答案C 考生得分2 是否评分已评分 评价描述 10. 阅读下列程序运行结果正确的是 def power(x,y): if y0: return 1 else: return x * power(x,y-1) print(power(4,5)) A. 243 B. 8 C. 1206 D. 1024 试题编号20220501-zwy-023 试题类型单选题 标准答案D 试题难度较难 试题解析power(a,b)表示a的b次幂当y不等于0返回x*power(x,y-1)。 据题x4y5,因此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为卸载三方包 考生答案D 考生得分2 是否评分已评分 评价描述 12. 不需要使用Python的pip工具安装的是 A. Python标准库 B. 第三方库 C. 用户自己开发的库 D. Python扩展库 试题编号20220502-cj-002 试题类型单选题 标准答案A 试题难度容易 试题解析其它要安装 考生答案A 考生得分2 是否评分已评分 评价描述 13. 使用lambda定义匿名函数如下flambda x:x1则f(f(1))代码运行结果是 A. 1 B. 2 C. 3 D. 会报错 试题编号20220502-cj-005 试题类型单选题 标准答案C 试题难度较难 试题解析f(1)2f(2)3 考生答案C 考生得分2 是否评分已评分 评价描述 14. 关于函数以下选项中描述错误的是 A. 函数是一段具有特定功能的、可重用的语句组。 B. 函数能完成特定的功能对函数的调用不需要了解函数内部实现原理 只要了解函数的输入输出方式即可。 C. 使用函数的主要目的是减低编程难度和代码重用。 D. Python 使用“del”保留字定义一个函数。 试题编号20220502-cj-008 试题类型单选题 标准答案D 试题难度一般 试题解析Python 使用“def”保留字定义一个函数。 考生答案D 考生得分2 是否评分已评分 评价描述 15. 某自定义函数有两个参数并且这两个参数都指定了默认值。我们在调用这个函数时最少需要提供几个实参 A. 0 B. 1 C. 2 D. 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 试题难度一般 试题解析可变参数在函数内以元组方式存储。 考生答案B 考生得分0 是否评分已评分 评价描述 18. 下列关于函数调用的说法正确的是 A. 调用函数时一定要赋值。 B. 只要安装成功第三方库不要导入就可以直接调用第三方库里的函数。 C. Python内置的标准函数可以多次调用。 D. 函数调用时如果参数有默认值就不能给它再赋新的值了。 试题编号20220516-cqf-11 试题类型单选题 标准答案C 试题难度容易 试题解析调用函数时不一定是必须要给参数赋值的先导入第三方库 再调用第三方库里的函数有默认值的参数也可以赋新值。 考生答案C 考生得分2 是否评分已评分 评价描述 19. 自定义函数的关键字是 A. define B. del C. def D. dfe 试题编号20220516-cqf-12 试题类型单选题 标准答案C 试题难度容易 试题解析自定义函数的关键字是def。 考生答案C 考生得分2 是否评分已评分 评价描述 20. 下列选项中不能作为自定义函数名的是 A. Int B. _int2 C. str2int D. 2_int 试题编号20220516-cqf-13 试题类型单选题 标准答案D 试题难度容易 试题解析函数名不能以数字开头。 考生答案D 考生得分2 是否评分已评分 评价描述 21. 函数定义如下 def func(a,b0,c0): 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,b2): B. def bfunc(a,b): C. def cfunc(a,*b): D. def dfunc(*a,b): 试题编号20220516-cqf-17 试题类型单选题 标准答案D 试题难度一般 试题解析可变参数必须在不可变参数的后面。 考生答案C 考生得分0 是否评分已评分 评价描述 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,6 B. 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是位置参数所以a1,b2,其余的参数会被*args收集打包放进一个元组中 即3456。 考生答案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. 计算下面这段程序的时间复杂度为平方阶On^2。 sum10 for i in range(101): sum1i 正确 错误 试题编号20220501-tr-032 试题类型判断题 标准答案错误 试题难度一般 试题解析时间复杂度为线性阶计On。 考生答案错误 考生得分2 是否评分已评分 评价描述 27. 汉诺塔游戏是递归调用的经典案例。 正确 错误 试题编号20220501-zwy-029 试题类型判断题 标准答案正确 试题难度容易 试题解析汉诺塔是学习递归算法最为常见的例子。 考生答案正确 考生得分2 是否评分已评分 评价描述 28. 递推关系是递归的重要组成。 正确 错误 试题编号20220501-zwy-030 试题类型判断题 标准答案正确 试题难度一般 试题解析对于递归而言递推与回归二者缺一不可。 考生答案正确 考生得分2 是否评分已评分 评价描述 29. 以下命令 pip get pandas 用于下载第三方库pandas但不马上安装。 正确 错误 试题编号20220502-cj-003 试题类型判断题 标准答案错误 试题难度容易 试题解析没有get这个命令。 考生答案正确 考生得分0 是否评分已评分 评价描述 30. 使用Python语言编程可以定义一个名叫pass的函数。 正确 错误 试题编号20220502-cj-011 试题类型判断题 标准答案错误 试题难度容易 试题解析pass是保留字。 考生答案错误 考生得分2 是否评分已评分 评价描述 31. 函数中没有return语句或者return语句不带任何返回值那么该函数的返回值为True。 正确 错误 试题编号20220502-cj-012 试题类型判断题 标准答案错误 试题难度容易 试题解析返回值为None 考生答案错误 考生得分2 是否评分已评分 评价描述 32. 在Python中调用函数的时候必须将每个实参都关联到函数定义中的每一个形参 最简单的关联方式就是基于实参的顺序。但也可以通过关键字实参的“关键字-值”方式关联形参 这时就不必考虑函数调用过程中实参的顺序。 正确 错误 试题编号20220503-cj-002 试题类型判断题 标准答案正确 试题难度容易 试题解析 考生答案错误 考生得分0 是否评分已评分 评价描述 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左边即ij则交换这两个数 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 midNumbers[left(right-left)//2] ileft jright while ij: while Numbers[i]mid: i1 while Numbers[j]mid: j-1 if ij: ② QuickSort(left,j-1) QuickSort(i1,right) Numberslist(map(int,input(请输入需要排序的一组整数数与数之间用空格隔开). ③ )) QuickSort(0, ④ ) print(排序结果,end) for i in Numbers: print(i,end ) 试题编号202212-P4-36 试题类型编程题 标准答案 参考程序 def QuickSort(left,right): if leftright: return midNumbers[left(right-left)//2] ileft jright while ij: while Numbers[i]mid: i1 while Numbers[j]mid: j-1 if ij: Numbers[i],Numbers[j]Numbers[j],Numbers[i] QuickSort(left,j-1) QuickSort(i1,right) Numberslist(map(int,input(请输入需要排序的一组整数数与数之间用空格隔开).split())) QuickSort(0,len(Numbers)-1) print(排序结果,end) for i in Numbers: print(i,end ) 试题难度较难 试题解析 评分标准 1leftright2分 2Numbers[i],Numbers[j]Numbers[j],Numbers[i]2分 3split()2分 4len(Numbers)-1。2分 考生答案此题已作答 考生得分6 是否评分已评分 评价描述 37. 鸡兔同笼是中国古代的数学名题之一。大约在1500年前《孙子算经》中就记载了这个有趣的问题。 书中是这样叙述的 今有雉兔同笼上有三十五头下有九十四足问雉兔各几何 意思是有若干只鸡兔同在一个笼子里笼中最少有一只鸡和一只兔 从上面数有35个头从下面数有94只脚。问笼中各有多少只鸡和兔 今天我们用编程的方法来求解一下这道数学命题吧。 def ji_tu(head,leg): j0 t0 while jhead: j 1 t ① if (leg ② ): print(有鸡{}只有兔子{}只。.format( ③ )) return (j,t) while True: try: sum_headint(input(请输入总头数)) sum_legint(input(请输入总脚数)) if ④ : print(输入鸡和兔子的总头数或总脚数错误请重新输入) else: ji_tu( ⑤ ) except: print(能不能正常输入数据) 试题编号202212-P4-37 试题类型编程题 标准答案 参考程序 def ji_tu(head,leg): j0 t0 while jhead: j 1 t head-j if (leg(j*2t*4)): print(有鸡{}只有兔子{}只。.format(j,t)) return (j,t) while True: try: sum_headint(input(请输入总头数)) sum_legint(input(请输入总脚数)) if sum_head2 or sum_leg6: print(输入鸡和兔子的总头数或总脚数错误请重新输入) else: ji_tu(sum_head,sum_leg) except: print(能不能正常输入数据) 试题难度一般 试题解析 评分标准 1head-j (2分) 2(j*2t*4) (3分) 3j,t (2分) 4sum_head2 or sum_leg6 (3分) 5sum_head,sum_leg。 (2分) 考生答案此题已作答 考生得分4 是否评分已评分 评价描述 38. 有一个游戏有两个人第一个人先从1和2中挑一个数字 第二个人可以在对方的基础上选择加1或者加2然后又轮到第一个人他也可以选择加1或者加2 之后再把选择权交给对方就这样双方交替地选择加1或者加2谁先加到20谁就赢了。 在不考虑谁输谁赢的情况下从一开始以1或2为起点加到20 有多少种不同的递加过程比如1471012151820算一种 25811141720又是一种。那么一共会有多少种这样的过程呢 我们可以用递归算法来解决这个问题请补全代码。 def guo_cheng(n): if ① : return 1 return ② # 输出所有过程的个数 print (guo_cheng( ③ )) 试题编号202212-P4-38 试题类型编程题 标准答案 参考程序 def guo_cheng(n): if n1 or n2: return 1 return guo_cheng(n-1)guo_cheng(n-2) # 输出所有过程的个数 print (guo_cheng(20)) 试题难度一般 试题解析 评分标准 1n1 or n2 (3分) 2guo_cheng(n-1)guo_cheng(n-2) (4分) 320 。 (3分) 考生答案此题已作答 考生得分0 是否评分已评分 评价描述