全国青少年软件编程(Python)等级考试四级考试真题2023年9月 您所在的位置:网站首页 青少年人工智能编程水平测试证书样式 全国青少年软件编程(Python)等级考试四级考试真题2023年9月

全国青少年软件编程(Python)等级考试四级考试真题2023年9月

2024-07-17 21:44| 来源: 网络整理| 查看: 265

青少年软件编程(Python)等级考试试卷(四级) 分数:100 题数:38 一、单选题(共25题,共50分) 1.用枚举算法求解“100以内既能被3整除又能被4整除的元素”时,在下列数值范围内,算法执行效率最高的是?( )

A. 1~101 B. 4~100 C. 12~100 D. 12~96 标准答案:D 试题解析:在选取循环控制变量时,枚举范围应尽可能小,但又不能遗漏。 2.下列有关函数的描述中,正确的是?( )

A. 函数中必须有return语句 B. 在函数内部不能使用全局变量 C. 函数能提高应用的模块化程度和代码的重复利用率 D. 函数内容以大括号起始,并且缩进 标准答案:C 试题解析:函数能提高应用的模块化程度和代码的重复利用率 3.下列哪个语句能够定义参数个数不确定的函数?( )

A. hs(parameters) B. hs(parameters[]) C. hs(parameters{}) D. hs( * parameters) 标准答案:D 试题解析:当不确定需要传入的值是多少个时,在定义形参时,可以使用 * parameters来表示。 4.执行如下Python代码的结果是?( ) def area(r,pi=3.14): return r * r * pi print(area(2,10))

A. 40 B. 200 C. 400 D. 20 标准答案:A 试题解析:函数运行结果,2 * 2 * 10,结果是40。 5.执行如下Python代码,输出结果是?( ) def hs(num): num += 1 return num n=10 s=hs(n) print(s)

A. 11 B. 10 C. 1 D. 运行错误 标准答案:A 试题解析:函数的返回值,赋值给变量s,输出11。 6.有如下Python程序,输出的结果是?( ) def whao(year = ‘2023’): print(‘你好’ + year) whao()

A. 你好 B. 你好2023 C. 你好year D. 没有输出 标准答案:B 试题解析:调用函数whao,输出: 你好2023 7.编写计算正方体体积的匿名函数,下列哪一个语句是正确的?( )

A. rst = lambda a : a * 3 B. lambda a : a * 3 C. rst = lambda a : a * * 3 D. lambda a : a * * 3 标准答案:C 试题解析:关键字lambda表示匿名函数,冒号之前表示的是这个函数的参数,冒号之后表示的是返回值,在定义匿名函数时,需要将它赋值给一个变量。 8.执行如下Python程序,运行的结果是?( ) def zfzh(s): c = ‘’ for ch in s: if “9”>=ch>= “0”: c+=str(int(ch)+1) elif “z”>=ch>= “a”: c+= chr(ord(ch)- ord(“a”)+ord(“A”)) return c s = ‘hzag-21-8’ print(zfzh(s))

A. HZAG329 B. 923HZAG C. GAZH329 D. 923GAZH 标准答案:A 试题解析:调用函数zfzh,注意字符串累加方式。 9.在Python中,以下哪个代码是安装numpy模块的方法?( )

A. pip install numpy B. pip uninstall numpy C. install numpy D. setup numpy 标准答案:A 试题解析:可以安装numpy模块的命令:pip install numpy 10.在Python中导入第三方库的主要关键字是?( )

A. from B. import C. pip D. install 标准答案:B 试题解析:在Python中导入第三方库的关键字是import。 11.《阅微草堂笔记》里描述了槐树果实“响豆”,在夜里爆响,这种豆一棵树只有一粒,难以辨认出。所以古人就等槐树开花结果后,用许多布囊分别贮存豆荚,用来当枕头。夜里如果没有听到声音,便扔掉。如果有爆响声。然后把这一囊的豆荚又分成几个小囊装好,夜里再枕着听……如此这么分下去直到找到响豆。以上故事体现的算法是?( )

A. 顺序查找 B. 枚举算法 C. 解析算法 D. 分治算法 标准答案:D 试题解析:分治算法的特征之一,就是将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题。 12.下列哪项不是分治算法所具有的特征?( )

A. 求解问题的规模缩小到一定的程度就能够容易地解决 B. 求解题可以分解为若干个规模较小的不同问题 C. 利用求解问题分解出的子问题的解可以合并为该问题的解 D. 求解问题所分解出的各个子问题是相互独立的 标准答案:B 试题解析:求解问题可以分解为若干个规模较小的相同问题。 13.两位同学玩猜数字游戏,规则如下:一方在心里默想一个范围在1-100之间的数,如果另一方猜的数字比对方想的要大,就说大了;如果猜的数字比想的要小,就说小了,直到猜中数字。那么使用二分查找法最多需要猜测的次数是?( )

A. 10 B. 8 C. 7 D. 6 标准答案:C 试题解析:相当于用二分法在1-100之间查找某个数字。 14.用递推算法求解n个自然数的乘积,请问代码中横线上需要填入的正确代码是?( ) def fact(n): s=1 for i in range(1,n+1): s=s * i return ________ a=fact(5) print(a)

A. s B. i C. fact(n-1) D. fact(n) 标准答案:A 试题解析:def fact(n): s=1 for i in range(1,n+1): s=s * i return s a=fact(5) print(a) 15.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 可以用下列代码解决这个问题,请问这段代码是基于( )算法编写的? high=100 s=0 sum=0 for i in range(10): s,high=high+high/2,high/2 sum=sum+s sum=sum-high print(sum) print(high)

A. 递归 B. 枚举 C. 递推 D. 二分 标准答案:C 试题解析:递推按照一定的规律来计算序列中的第一项,而问题显然是一个等比数列,可以用递推来解决。代码中没有调用自身的情况,所以不是递归。 16.用递归算法求1~n个连续自然数的乘积的代码如下,请选择合适的代码补全程序?( ) def Chengji(n): if n arr[j+1] : arr[j], arr[j+1] = arr[j+1], arr[j]

正确 错误 标准答案:正确 试题解析:双重循环,时间复杂度为O(n * n)。 三、编程题(共3题,共30分) 36.从键盘上分别输入要查找和替换的字符串,对文本文件进行查找与替换,替换后保存到新的文本文件中。 思路:输入待查找字符串s,需查找子字符串key和替换字符串new,通过调用自定义函数replace实现替换。完善划线处代码。 s = input(“请输入待查找的字符串:”) key = input(“请输入需查找的子字符串:”) new = input(“请输入要替换的字符串:”) def findstr(key, s, begin): for i in range(begin,len(s) - len(key) + 1): if s[i: ① ]== key: return i return -1 def replace(key, new, s): begin = 0 while begin < ② : pos = findstr(key,s, begin) if pos ==-1: break else: s = s[0:pos]+ new + s[pos + len(key): ③ ] begin = pos + len(key) return s rst = ④ #调用函数替换字符 print(rst)

标准答案: 参考程序: s = input(“请输入待查找的字符串:”) key = input(“请输入需查找的子字符串:”) new = input(“请输入要替换的字符串:”) def findstr(key, s, begin): for i in range(begin,len(s) - len(key) + 1): if s[i:i+len(key)]== key: return i return -1 def replace(key, new, s): begin = 0 while begin < len(s)-len(key)+ 1: pos = findstr(key,s, begin) if pos ==-1: break else: s = s[0:pos]+ new + s[pos + len(key):len(s)] begin = pos + len(key) return s rst = 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分) 展示地址:点击浏览 37.一个列表中存在n个数据,可以用分治算法来找到其中的最小值。具体过程如下:如果列表元素的个数小于等于2的时候,经过一个判断就找到其中的最小值,所以可以先把数据从中间划分为左右两部分,然后通过递归把每一部分再划分为左右两部分,直到数据规模小于等于2的时候,返回结果,然后通过递归到最后为两个数据对比,我们就可以找到最小值。 请根据以上算法过程,补全代码。

求列表中小于两个元素的最小值

def get_min(number): if len(number) == 1: return ① else: if number[1] > number[0]: return number[0] else: return number[1] def solve(number): n = len(number) if n number[0]: return number[0] else: return number[1] def solve(number): n = len(number) if n



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有