2024.03全国青年软件编程(Python)等级考试试卷(四级)

标签:
普通文字版答案
2024-07-03
| 19页
| 217人阅读
| 0人下载

内容正文:

青少年软件编程(Python)等级考试试卷(四级) 分数:100 题数:38 一、单选题(共25题,共50分) 1. 运行如下代码,若输入整数3,则最终输出的结果为?( ) def f(x): if x==1: s=1 else: s=f(x-1)*x return s n=int(input("请输入一个大于1的整数:")) print(f(n)+f(n-1)) A. 2 B. 4 C. 8 D. 16 试题编号:202306-zj-014 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:由于f(3)=f(2)*3,f(2)=f(1)*2,f(1)=1,所以f(3)+f(2)=6+2=8。 考生答案:C 考生得分:2 是否评分:已评分 评价描述: 2. 运行下列程序,输出的结果是?( ) def fun(x): if x > 3: return x * fun(x-1) else: return x print(fun(6)) A. 120 B. 360 C. 720 D. 60 试题编号:202306-zj-015 试题类型:单选题 标准答案:B 试题难度:一般 试题解析:递归函数求解,根据递归函数6*5*4*3=360 考生答案:B 考生得分:2 是否评分:已评分 评价描述: 3. 下列关于递归的描述不正确的是?( ) A. 递归函数一定包含if语句 B. 递归函数体内一定包含调用自身的语句 C. 在调用自身函数时需要明确的边界终止条件与边界值 D. 递归算法一般代码简洁,执行效率高,空间复杂度低 试题编号:202306-zj-016 试题类型:单选题 标准答案:D 试题难度:较难 试题解析:递归算法一般代码简洁,易于理解,但执行效率较低,空间复杂度高。 考生答案:D 考生得分:2 是否评分:已评分 评价描述: 4. 运行下列程序,输出的结果是?( ) def fun(a, n): s = 0 for i in range(1, n+1): temp = str(a)*i s += int(temp) return s print(fun(1, 3)) A. 3 B. 6 C. 12 D. 123 试题编号:202306-zj-017 试题类型:单选题 标准答案:D 试题难度:较难 试题解析:递推函数求解,本题是求1+11+111之和。 考生答案:D 考生得分:2 是否评分:已评分 评价描述: 5. 运行下列程序,输出的结果是?( ) def fun(a, b): s = 0 a = a[::-1] for i in range(len(a)): s += int(a[i])*b**i return s print(fun('45', 16)) A. 69 B. 45 C. 64 D. 61 试题编号:202306-zj-018 试题类型:单选题 标准答案:A 试题难度:一般 试题解析:递推函数求解,本题是根据一个字符串和进制,转换成对应的十进制。 考生答案:C 考生得分:0 是否评分:已评分 评价描述: 6. 一个荷花池,第一天荷花开放得很少,第二天开放的数量是第一天的两倍,之后的每一天,荷花都会以前一天两倍的数量开放。如果到第30天,荷花就开满了整个池塘,设第一天开一朵,编程求第30天共开了多少朵荷花。下面空白处的代码填写正确的是?( ) s = 0 t = 1 for i in range(1, ① ): s += t ② print(s) A. 30, t = t*2 B. 31, t = t*2 C. 31, t+=2 D. 30, t*=2 试题编号:202306-zj-019 试题类型:单选题 标准答案:B 试题难度:一般 试题解析:递推函数求解,本题递推关系是t = t*2, 循环次数是30次。 考生答案:B 考生得分:2 是否评分:已评分 评价描述: 7. 解决下列问题时,时间复杂度最大的是?( ) A. 输入n个不同的包含两位小数的实数,计算这n个数的和 B. 在n个数据中,查找数据k C. 将n个数据用冒泡排序实现排序 D. 计算算式1-2+3-4+...-n的结果,n为偶数 试题编号:20230616-fcl-035 试题类型:单选题 标准答案:C 试题难度:一般 试题解析:算法优化。 考生答案:C 考生得分:2 是否评分:已评分 评价描述: 8. 以下关于分治算法的描述正确的是?( ) A. 各个子问题既相互独立又相互联系 B. 问题可以分解成若干个规模较小的相同问题 C. 可以直接对问题进行求解 D. 子问题的解不能合并成原问题的解 试题编号:20230702-xyr-020 试题类型:单选题 标准答案:B 试题难度:容易 试题解析:分治算法的特征,各个子问题相互独立,子问题的求解可以合并成原问题的解。 考生答案:B 考生得分:2 是否评分:已评分 评价描述: 9. 下列选项中哪一项使用了分治算法?( ) A. 二分搜索 B. 选择搜索 C. 插入搜索 D. 顺序搜索 试题编号:20230702-xyr-021 试题类型:单选题 标准答案:A 试题难度:容易 试题解析:二分查找体现了分治算法。 考生答案:A 考生得分:2 是否评分:已评分 评价描述: 10. 不超过20个元素的降序数列,使用对分查找能找到指定的元素,可能的查找次数不包括?( ) A. 3 B. 4 C. 5 D. 6 试题编号:20230702-xyr-022 试题类型:单选题 标准答案:D 试题难度:较难 试题解析:int(log220)+1=5。 考生答案:D 考生得分:2 是否评分:已评分 评价描述: 11. 下面程序段的输出结果是?( ) def add_Run(L=None): if L is None: L = ['Lying'] else: L.append('Run') return L add_Run() print(add_Run()) print(add_Run(['Lying'])) A. ['Lying'] ['Run'] B. ['Lying'] ['Lying'] ['Lying', 'Run'] C. ['Lying'] ['Lying', 'Run'] D. [] ['Lying', 'Run'] 试题编号:20230704-TR-011 试题类型:单选题 标准答案:C 试题难度:较难 试题解析:if分支定义列表,else分支添加列表元素。 考生答案:C 考生得分:2 是否评分:已评分 评价描述: 12. 下面关于计数器的程序,输出结果正确的是?( ) count = 0 def increment(): global count count += 1 print("计数器的值:", count) increment() increment() increment() A. 计数器的值: 1 计数器的值: 2 计数器的值: 3 B. 计数器的值:0 计数器的值:1 计数器的值:2 C. 计数器的值: 1 计数器的值: 1 计数器的值: 1 D. 计数器的值:3 试题编号:20230704-TR-012 试题类型:单选题 标准答案:A 试题难度:较难 试题解析:在函数内部可以通过关键字global来定义全局变量。 考生答案:A 考生得分:2 是否评分:已评分 评价描述: 13. 下列程序段的输出结果是?( ) L = [] x = 3 def test(x): L.append(x) x = 5 test(x) print('L = {}, x = {}'.format(L, x)) A. L = [3], x = 3 B. L = [5], x = 5 C. L = [3], x = 5 D. L = 3, x = 5 试题编号:20230704-TR-013 试题类型:单选题 标准答案:A 试题难度:一般 试题解析:函数内部定义变量x的值为5,只能作用于函数内部。 考生答案:A 考生得分:2 是否评分:已评分 评价描述: 14. 以下程序,运行程序输出结果正确的是?( ) def demo(x): return x*2 print(demo(demo(1))) A. return None B. 2 C. 4 D. 8 试题编号:20230704-TR-014 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:调用二次,1乘以二次2,因此结果为4。 考生答案:C 考生得分:2 是否评分:已评分 评价描述: 15. Python使用下列哪个函数接收用户输入的数据?( ) A. accept() B. input() C. print() D. login() 试题编号:20230704-TR-015 试题类型:单选题 标准答案:B 试题难度:容易 试题解析:在Python中,用于获取用户输入的函数是input()。 考生答案:B 考生得分:2 是否评分:已评分 评价描述: 16. 下面程序段的输出结果正确的是?( ) def power(): x ='python' y = 'world' z = x + " " + y return z print(power()) A. z B. x + " " + y C. python world D. python" "world 试题编号:20230704-TR-016 试题类型:单选题 标准答案:C 试题难度:容易 试题解析:该函数作用为连接字符串。 考生答案:C 考生得分:2 是否评分:已评分 评价描述: 17. 下列关于Python函数的描述中,不正确的是?( ) A. 自定义函数时用到的关键字是def B. 在python函数中,至少有一条return语句 C. 函数print()可以一次输出多个参数,如print('1',"2",3,[4]) D. 用函数eval()可以用于求字符串里表达式的值,如eval('3+5-1') 试题编号:20230710-cqf-1 试题类型:单选题 标准答案:B 试题难度:一般 试题解析:函数可以有返回值,也可以没有返回值。需要返回值的函数,可以包含一条或者多条return语句;没有返回值的函数,不需要包含return语句。 考生答案:B 考生得分:2 是否评分:已评分 评价描述: 18. 关于以下代码的描述中,正确的是?( ) #求两个正方形的面积差 def MianJiCha(a,b): s=a**2-b**2 return s a=5 b=10 c=MianJiCha(b,a)+a A. 代码运行后,变量c的值是80 B. 函数名是MianJiCha(a,b) C. 可以用MianJiCha(100)的形式调用此函数 D. 代码运行时会报错 试题编号:20230710-cqf-2 试题类型:单选题 标准答案:A 试题难度:一般 试题解析:s=10**2-5**2+5=100-25+5=80 考生答案:A 考生得分:2 是否评分:已评分 评价描述: 19. 下列关于Python函数的说法中,错误的是?( ) A. 利用函数可以降低编程复杂度,增加代码可读性 B. 函数可以重复调用 C. 函数可以降低修改代码的工作量 D. 调用函数时,每次都必须输入相同的参数值 试题编号:20230710-cqf-3 试题类型:单选题 标准答案:D 试题难度:一般 试题解析:有些函数需要输入参数才能调用,有些不需要。需要输入参数的函数在多次调用时,允许输入合法的不同参数。这也正是函数可复用的实现形式。 考生答案:D 考生得分:2 是否评分:已评分 评价描述: 20. 下列选项中,调用下列代码定义的函数时,程序会报错的是?( ) def ShuChu(a,b,c): print(c,b,a) A. ShuChu('1','2','3') B. ShuChu('1','2','3,4') C. ShuChu(1,2,3) D. ShuChu(1,2,3,4) 试题编号:20230710-cqf-4 试题类型:单选题 标准答案:D 试题难度:容易 试题解析:在使用位置实参的方式传值时,传入的实参个数必须与形参相同,否则运行程序会报错。 考生答案:D 考生得分:2 是否评分:已评分 评价描述: 21. 下列选项中,调用以下代码定义的函数时,程序会报错的是?( ) def kp(a,b,c): print(a,b,c) A. kp(1,b=2,3) B. kp(a=3,b=1,c=2) C. kp(1,2,3) D. kp(1,b=2,c=3) 试题编号:20230710-cqf-5 试题类型:单选题 标准答案:A 试题难度:较难 试题解析:在函数调用时,采用位置实参与关键字实参混合传入参数时,位置实参必须放在关键字实参之前。 考生答案:A 考生得分:2 是否评分:已评分 评价描述: 22. 下列代码的输出结果是?( ) >>>s=lambda m,n:m*n >>>s(6,6) A. 6 B. 6,6 C. 36 D. 12 试题编号:20230710-cqf-6 试题类型:单选题 标准答案:C 试题难度:较难 试题解析:匿名函数中,冒号前面是参数列表,冒号后面是函数的返回值。m=6,n=6,s=m*n=6*6=36 考生答案:C 考生得分:2 是否评分:已评分 评价描述: 23. 以下函数定义错误的选项是?( ) A. def aFunc(m,n): print(m,n) B. def aFunc(m,n=2): print(m,n) C. def aFunc(*m,n): print(m,n) D. def aFunc(m,*n): print(m,n) 试题编号:20230710-cqf-7 试题类型:单选题 标准答案:C 试题难度:较难 试题解析:*m表示是可变参数,可传入值的个数不确定。可变参数只能放在不可变参数的后面,不然解释器将不能识别哪些值传给可变参数,哪些值传给不可变参数。 考生答案:C 考生得分:2 是否评分:已评分 评价描述: 24. 用于安装Python第三方库的工具是?( ) A. install B. pip C. Wheel D. setup 试题编号:20230713-xm-024 试题类型:单选题 标准答案:B 试题难度:一般 试题解析:pip是Python自带的第三方库的安装工具。 考生答案:B 考生得分:2 是否评分:已评分 评价描述: 25. 编程时,如果只需要导入某第三方库中的某个成员,需要使用到的关键字是?( ) A. from B. as C. into D. inport 试题编号:20230713-xm-025 试题类型:单选题 标准答案:A 试题难度:容易 试题解析:导入外部模块的某个成员,使用from关键字。 考生答案:A 考生得分:2 是否评分:已评分 评价描述: 二、判断题(共10题,共20分) 26. 若某个问题既能用递归算法求解,又能用递推算法求解,则使用递归方法求解更容易,效率也高得多。( ) 正确 错误 试题编号:202306-zj-031 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:递归求解效率要低。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述: 27. 如下代码因为递归的边界条件设置错误,产生了无限递归程序报错。( ) def fun(n): if n > 10: return 0 else: return n + fun(n-1) print(fun(10)) 正确 错误 试题编号:202306-zj-032 试题类型:判断题 标准答案:正确 试题难度:一般 试题解析:递归的边界条件设置错误,产生了无限递归程序报错。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述: 28. 算法的时间复杂度与空间复杂度没有必然关系。( ) 正确 错误 试题编号:20230616-fcl-034 试题类型:判断题 标准答案:正确 试题难度:容易 试题解析:算法的时间复杂度与空间复杂度没有必然关系。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述: 29. 已知有n本按照书名拼音排序好的图书,使用对分查找法搜索其中任何一本书,最多查找次数为4次,则n的值有可能为10。( ) 正确 错误 试题编号:20230702-xyr-033 试题类型:判断题 标准答案:正确 试题难度:容易 试题解析:根据二分查找最坏查找次数可得。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述: 30. 函数定义语句def f(c=1,d=2,a,b):是正确的,因为默认值形参要放在前面。( ) 正确 错误 试题编号:20230704-TR-017 试题类型:判断题 标准答案:错误 试题难度:容易 试题解析:函数定义,默认值形参要放在后面。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述: 31. return语句可以返回任何数据类型的值,包括整数、浮点数、字符串、列表、元组、字典等。( ) 正确 错误 试题编号:20230704-TR-018 试题类型:判断题 标准答案:正确 试题难度:容易 试题解析:return语句可以用于在函数执行结束后返回一个值。这个值可以是任何类型,例如整数、浮点数、字符串、列表等等。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述: 32. def ZiDian(**kwargs): print(kwargs) ZiDian(a=1) 运行上面的代码后,输出结果为{'a':1}。( ) 正确 错误 试题编号:20230710-cqf-10 试题类型:判断题 标准答案:正确 试题难度:一般 试题解析:当不确定需要传入的值是多少时,在定义形参时,可以使用*args(列表)、**kwargs(字典)来表示。在元素前加上**后,传入的值以字典的形式显示出来。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述: 33. 以下代码可以正常运行,输出8。( ) def qh(a,b=3): print(a+b) qh(b=2,6) 正确 错误 试题编号:20230710-cqf-8 试题类型:判断题 标准答案:错误 试题难度:一般 试题解析:在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参。不然,程序会报错。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述: 34. 代码>>>lambda:x=2,y=3:x+y 的运行结果是5。( ) 正确 错误 试题编号:20230710-cqf-9 试题类型:判断题 标准答案:错误 试题难度:较难 试题解析:匿名函数中冒号前面的部分表示参数列表,不能有赋值语句,不然会报“can't assign to lambda”错误。 考生答案:错误 考生得分:2 是否评分:已评分 评价描述: 35. 使用pip install --upgrade numpy命令能够升级numpy科学计算库。( ) 正确 错误 试题编号:20230713-xm-035 试题类型:判断题 标准答案:正确 试题难度:一般 试题解析:pip的install --upgrade numpy指令用来升级外部模块。 考生答案:正确 考生得分:2 是否评分:已评分 评价描述: 三、编程题(共3题,共30分) 36. 数的分解 给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1×a2×a3×...×an,并且1<a1≤a2≤a3≤...≤an,问这样分解的种类有多少。注意到a=a也是一种分解。 例如,8可以分解成8=2*2*2,8=2*4,8=8总共3种。 代码如下,完善划线处的代码: def fun(x, y=2): if x == 1: global ans ① for i in range(y, x+1): if ② : fun(x//i,i) lst = [2, 8, 9, 20] #测试数据 for i in lst: ans = 0 ③ print(ans) 程序运行结果如下: 1 3 2 4 试题编号:202403-P4-36 试题类型:编程题 标准答案: 参考程序: def fun(x, y=2): if x == 1: global ans ans += 1 for i in range(y, x+1): if x % i == 0: fun(x//i, i) lst = [2, 8, 9, 20] #测试数据 for i in lst: ans = 0 fun(i) print(ans) 试题难度:较难 试题解析: 评分标准: (1)ans += 1 或等效答案;(2分) (2)x % i == 0 或等效答案;(3分) (3)fun(i) 或等效答案。(3分) 展示地址:点击浏览 考生答案:(此题已作答) 考生得分:6 是否评分:已评分 评价描述: 37. 购物组合 小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合? def gouwu(money): for i in range(0,money//15+1): for j in range(0,money//2+1): for k in range(0, ① ): if ② : print('可选择的购买组合:\t购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。'.format( ③ )) gouwu(100) 试题编号:202403-P4-37 试题类型:编程题 标准答案: 参考程序: def gouwu(money): for i in range(0,money//15+1): for j in range(0,money//2+1): for k in range(0,money//5+1): if i*15+j*2+k*5==money: print('可选择的购买组合:\t购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。'.format(i,j,k)) gouwu(100) 试题难度:一般 试题解析: 评分标准: (1)money//5+1 或等效答案;(3分) (2) i*15+j*2+k*5==money 或等效答案;(4分) (3) i,j,k 或等效答案。(3分) 展示地址:点击浏览 考生答案:(此题已作答) 考生得分:10 是否评分:已评分 评价描述: 38. 回文素数 回文素数是指一个不小于11的自然数n从左向右和从右向左读,其结果值相同且是素数,即称n为回文素数。一种求解的方法是先判断一个自然数是否为回文数,再判断它是否为素数。如果两个判断都成立,则该自然数是回文素数。请补全代码,找出自然数1000以内的所有回文素数。 #判断是否为素数 def ① (n): for i in range(2,n): if ② : break else: return True #判断是否为回文数 def HuiWenShu(n): n=str(n) if n== ③ : return True else: return False for i in range(11,1001): if ZhiShu(i)==True ④ : print('{}是回文素数!'.format(i)) 试题编号:202403-P4-38 试题类型:编程题 标准答案: 参考程序: #判断是否为素数 def ZhiShu(n): for i in range(2,n): if n%i==0: break else: return True #判断是否为回文数 def HuiWenShu(n): n=str(n) if n==n[::-1]: return True else: return False for i in range(11,1001): if ZhiShu(i)==True and HuiWenShu(i)==True: print('{}是回文素数!'.format(i)) 试题难度:一般 试题解析: 评分标准: (1)ZhiShu 或等效答案;(2分) (2)n%i==0 或等效答案;(2分) (3)n[::-1] 或等效答案;(4分) (4)and HuiWenShu(i)==True 或等效答案。(4分) 展示地址:点击浏览 考生答案:(此题已作答) 考生得分:8 是否评分:已评分 评价描述: 学科网(北京)股份有限公司 $$

资源预览图

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