全国青少年软件编程(Python)等级考试202203真题202203Python四级.docx
青少年软件编程(Python)等级考试试卷(四级)分数:100 题数:38一、单项选择题(共25题,共50分).关于函数,以下选项中描述错误的选项是?()A. 函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数整B. 使用函数的主要目的是减低编程难度和代码重用。C. Python使用del保存字定义一个函数。D. 函数是一段具有特定功能的、可重用的语句组。试题编号:20200316-ysy-007试题类型:单项选择题标准答案:C试题难度:容易试题解析:Python使用def保存字定义一个函数。考生答案:A考生得分:0是否评分:已评分评价描述:1 . Python机器学习方向的第三方库是?()A. TurtleB. TensorFlowC. PygameD. Random试题编号:20200316-ysy-011试题类型:单项选择题标准答案:B试题难度:一般试题解析:TensorFlow是人工智能领域类的深度学习库。考生答案:C考生得分:0是否评分:已评分评价描述:试题编号:20220213-ssn-018试题类型:单项选择题标准答案:C试题难度:一般试题解析:考生答案:D考生得分:0是否评分:已评分评价描述:21 .以下函数要实现5的阶乘,那么划线处应补充选项为?() def fun (i):if i<=l:return 1else:return print (fun (5)A. i*(iT)*(i-2)*.*2*1B. (iT) *fun (i)C. i*fun(i+l)D. i*fun(i-1)试题编号:20220213-ssn-019试题类型:单项选择题标准答案:D试题难度:一般试题解析:考生答案:D考生得分:2是否评分:已评分评价描述:22 .以下常见算法中,表达分治思想的是?()A. 解析算法B. 枚举算法C. 冒泡排序D. 对分查找试题编号:20220213-ssn-020试题类型:单项选择题标准答案:D试题难度:一般试题解析:考生答案:D考生得分:2是否评分:已评分评价描述:23 .对于序列98, 88, 76, 65, 48,24,12,12,8,1,采用“对分查找”法查找8,需要查找多少次?(A. 5B. 4C. 3D. 2试题编号:20220213-ssn-021试题类型:单项选择题标准答案:C试题难度:一般试题解析:按二分查找法的规律,每次先查找中间值,进行比拟。考生答案:C考生得分:2是否评分:已评分评价描述:24 .分治法所能解决的问题一般具有以下几项特征,以下哪一项描述不正确?()A. 该问题的规模缩小到一定的程度就可以容易地解决B. 该问题可以分解为假设干个规模较小的相同问题,即该问题具有最优子结构性质C. 利用该问题分解出的子问题的解可以合并为该问题的解D. 该问题所分解出的各个子问题之间包含公共的子子问题试题编号:20220213-ssn-022试题类型:单项选择题标准答案:D试题难度:一般试题解析:考生答案:D考生得分:2是否评分:已评分评价描述:25 . 一般用于安装Python第三方库的工具是?()A. importB. installc.D.setup pip试题编号:20220213-ssn-025试题类型:单项选择题标准答案:D试题难度:容易试题解析:考生答案:D考生得分:2是否评分:已评分评价描述:二、判断题(共10题,共20分).如以下图代码,运行之后,最终打印出的结果是4,请判断对错。def M(a, b = 2):return a+bprint(M(l,b=3)正确 错误试题编号:20200319-LL-020试题类型:判断题标准答案:正确试题难度:一般试题解析:默认参数的值被改变了,所以将计算传入的两个参数的值,结果就是4考生答案:错误考生得分:0是否评分:已评分评价描述:26 .以下图左右两段代码运行之后,打印出的结果不相同!请判断对吗? 根据题意,该题答案为:错误.def n(a): a=a+2 return adef n(a): a=a+2 return ab=3 n(b) print(b)a=3 n(a) print(a)正确 错误试题编号:20200319-LL-025试题类型:判断题标准答案:正确试题难度:一般试题解析:第一段代码打印出的结果应该是5,第二段代码变量b的值并没有被改动,打印日 考生答案:错误考生得分:2是否评分:已评分评价描述:def n(x): printC* * x ) if x = = 1:return n(x-l)n(5)错误27 .为实现以下图左边的打印效果,小明编写了如以下图右边的代码。 请问,他这代码能正确打印出左边效果来吗?*正确* 试题编号:20200319-LL-029试题类型:判断题标准答案:正确试题难度:一般试题解析:基本的递归,函数通过对自身的调用,实现每将调用参数减1,所以,此题正确。考生答案:正确考生得分:2是否评分:已评分评价描述:28 .为打印出5、4、3、2、1这个数字序列,小明编写了一个递归函数,如以下图所示。 请问,他这个程序是正确的吗?def n(x):print(x)n(x-l)if x = = 1:returnn(5)正确 错误试题编号:20200319-LL-030试题类型:判断题标准答案:错误试题难度:一般试题解析:递归在判断之前,程序将永无止境,不会停止,所以,这个程序写错了。正确的2考生答案:正确考生得分:0是否评分:已评分评价描述:29 . 1、有abc三个口袋,a袋中有1粒糖,b袋中有2粒糖,c袋中有3粒糖2、小红与小明两人轮流在任意一袋中取糖出来。每次可以在任意一袋中,取任意颗(比方,3、到最后,谁最后一次取,并将所有糖都取完了,谁就获胜,获胜者将得到所有的糖。小明让小红先取,自己后取。小红说:不!先取的人肯定会输!请判断,小红所说,是正确还是错误?()正确 错误试题编号:20200319-LL-032试题类型:判断题标准答案:正确试题难度:困难试题解析:从最简单的开始:1、如果总共只有1粒糖,那么谁先谁胜;2、如果有两袋,每袋中有1颗,显然谁先谁输:3、如果有两袋,1袋中1颗,另一袋中有2颗,显然谁先谁胜(只需拿掉2颗中的一颗,剩. 4、如果有两袋,每袋都是2颗,显然谁先谁输(如果一次拿掉2颗,那么对方拿剩下的2颗,: 面3,对方先,也是对方胜)5、如果有三袋,每袋1颗,那么显然谁先谁胜6、如果有三袋,其中两袋有1颗,一袋2颗,显然谁先谁胜,只需将2颗的拿掉,剩下两个 7、如果有三袋,其中两袋有2颗,一袋1颗,显然谁先谁胜(只需拿掉1颗的,剩下就变成 8、如果三袋,分别有1、2、3颗,谁先谁输:如果从3中拿1颗,就变成了上面7,对方先: 也是对方胜,如果将3拿完,就变成上述3,也是对方胜。所以,整个游戏,谁先谁输。此题,是将复杂问题简化,然后逐步增加难度,直到解决整个问题,是典型的分治算法的思杰考生答案:错误考生得分:0是否评分:已评分评价描述:30 .小明听说,使用pygame模块可以编写很多有趣的小游戏,于是他想在自己的电脑上安装这今 他使用了如下命令进行安装,请问,他下面这条命令正确吗?pip install -i pygame正确 错误试题编号:20200319-LL-038试题类型:判断题标准答案:正确试题难度:一般试题解析:这是使用pip命令安装外部模块的基本命令。此题中用法正确。使用了选项-i , python仓库中进行安装的。考生答案:正确考生得分:2是否评分:已评分评价描述:31 .匿名函数L(xl, yl, x2, y2)的返回值是(xl-x2)*2 + (yy2)*2的计算结果。L = lambda xl, yl, x2, y2: (xx2)*2 + (yl-y2)*2正确 错误试题编号:20200320-wc-010试题类型:判断题标准答案:正确试题难度:较难试题解析:匿名函数的返回值是其函数体中的表达式的值考生答案:正确考生得分:2是否评分:已评分评价描述:32 . primenumber (number)函数是判断一个数是否是素数的函数,将函数的循环条件“for i in r range (2, number/2)"能够降低 primenumber (number)函数的B寸间复杂度。def primenumber(number):if number < 2:print (number, 不是素数! ) else:for i in range(2, number): if number % i = 0:print (number, 不是素数! ) breakelse:print (number, 是素数! )正确 错误试题编号:20200330-wc-035试题类型:判断题标准答案:错误试题难度:困难试题解析:判断number是否是素数时,如果在:lnumber72范围内存在一个数能够将numbe number=aXb,当 anumber/2 时,bnunibei72,当 bnumber/2 时,a<numbei72,所以我们只需充 换成number/2,但去系数后,时间复杂度仍为0(n)。考生答案:错误考生得分:2是否评分:已评分评价描述:33 .在一个程序实现过程中,假设某一局部的代码功能反复出现了屡次,我们可以把这段反复出现白 用,这表达了函数代码的复用性。正确 错误试题编号:20200407-zpf-002试题类型:判断题标准答案:正确试题难度:容易试题解析:考生答案:正确考生得分:2是否评分:已评分评价描述:34 .执行以下代码:def func(list_l): list_l=5, 8list=20, 12, 53 func(list_l)t=tuple (list_l) print (t)程序输出的结果为:(5,8)。正确 错误试题编号:20200407-zpf-007 试题类型:判断题标准答案:错误试题难度:一般试题解析:考生答案:错误考生得分:2是否评分:已评分评价描述:三、编程题(共3题,共30分). 7个评委给每个选手打分,评委分数中去掉最高分与最低分,计算所得平均分是每个选手的第 根据上述计算规那么,编写自定义函数完成程序功能,完善代码。 根据评委分数,计算去掉最高分与最低分后的平均分,保存2位小数 函数名 def getScore(fs): 参数 fs:表示评委的分数,为列表返回值:返回选手的得分,保存2位小数。 def getScore (fs): maxfs = 0 minfx = 999999 n二 for f in fs:if f > maxfs: elif f < minfx: minfx = f yxf = sum(fs)-maxfs-minfx avgfs =® return avgfsfs = 9. 56, 9. 68, 9. 78, 9. 67, 9. 81, 9. 21, 9. 75defen =print(defen)试题编号:20200330-fcl-002试题类型:编程题标准答案: 参考程序: def getScore(fs): maxfs = 0 minfx = 999999 n = len(fs) - 2 for f in fs: if f > maxfs: maxfs = f elif f < minfx: minfx = f yxf = sum(fs)-maxfs-minfx avgfs = int (yxf / n * 100 +0.5) / 100 return avgfsfs = 9. 56, 9. 68, 9. 78, 9. 67, 9. 81, 9. 21, 9. 75 defen = getScore (fs) print (defen)试题难度:一般试题解析: 评分标准: len(fs) - 2或等效答案;(3分)maxfs = f;(3 分)int (yxf / n * 100 +0. 5) / 100 或等效答案;(4 分)getScore (fs) o(2 分)展示地址:点击浏览 考生答案:(此题已作答) 考生得分:5 是否评分:已评分 评价描述:37.素数是只能被1和本身整除的正整数,编写自定义函数,实现判断正整数是否为素数。完善无 判断正整数n是否为素数,假设是返回True;否那么返回False 函数名 def prime (n) 参数 n:表示正整数返回值:n是素数,返回True;否那么返回Falsedef prime(n):if n < 2:return Falseelse:for i in range (®n):if ®:return False returnn = 7if ®:print (" 是素数.format (n)else:print (-不是素数.format (n)试题编号:20200330-fcl-007试题类型:编程题标准答案:参考程序:def prime(n):if n < 2:return Falseelse:for i in range (2, n):if n % i = 0:return Falsereturn Truen = 7if prime(n):print (z/是素数.format (n)else:print ( 不是素数.format (n)试题难度:一般试题解析:评分标准:2 ;(2分)n % i = 0;(2 分)True ; (2 分)©prime (n) o (2 分)展示地址:点击浏览考生答案:(此题已作答)考生得分:8.Python可以将形式参数定义为可变参数,即传入函数中的实际参数可以是任意多个,主要有 以下关于可变参数的定义形式表述错误的选项是?()A. “"parameter”这种形式表示接受任意多个实际参数并将其放到一个列表中B. 如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表的名称前加“*”,C. "*parameter”这种形式表示接受任意多个类似关键字参数一样显示赋值的实际参数:D. 如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加“*”试题编号:20200402-xc-004试题类型:单项选择题标准答案:A试题难度:较难试题解析:可变参数parameter"这种形式表示接受任意多个实际参数并将其放到一个元组 数的可变参数,可以在列表的名称前加“*”后作为形式参数进行调用;"parameter"这种3 示赋值的实际参数并将其放到一个字典中,如果想要使用一个已经存在的字典作为函数的可变 式参数进行调用。考生答案:B考生得分:0是否评分:已评分评价描述:3 .关于以下程序,运行程序输出的结果是?()def demo(a,b):print(a+b)mydict ='a与L'bNdemo(*mydict)demo(*mydict)A.33B.3abC.ab3D.ab试题编号:20200402-xc-009试题类型:单项选择题标准答案:B试题难度:较难试题解析:如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表的名称前加“ 一个已经存在的字典作为函数的可变参数,可以在字典的名称前加“*”后作为形式参数进行I 后进行调用,形参a与b将获得对应键的值,如果使用后进行调用,形参a与b将获得的 符串的连接。考生答案:B考生得分:2是否评分:已评分评价描述:38.编写程序计算n(nC10)位数中,包含奇数个5的个数。比方1位数中包含奇数个5的个数是: 的个数。完善划线处的代码。c = 0 for i in range (2) for i in range (11) #存放奇数个 5 和偶数个 5 的二维列彳cl 0 = 9#一位数中包含偶数个5的个数cll = 1# 一位数中包含奇数个5的个数k = 9 n = 5 for i in range (2,(1):if i = n:k =ci 0 = ci-l1 + k * ci-l 0 ciHi二print (cn 1)试题编号:20200330-fcl-009试题类型:编程题标准答案:参考程序:c = 0 for i in range(2) for i in range(ll) #存放奇数个 5 和偶数个 5 的二维列表cl 0 = 9#一位数中包含偶数个5的个数cll=1#一位数中包含奇数个5的个数k = 9 n = 5 for i in range(2, n+1): if i = n: k 二 k - 1 ci 0= ci-l 1 + k * ci-l 0 ci 1 = k*ci-l 1 + ci-l 0print (cn 1) 试题难度:一般 试题解析: 评分标准: n+1 ; (3 分) k - 1 ;(3 分) k*ci-ll + ci-l 0 o (4 分)展示地址:点击浏览考生答案:(此题已作答)考生得分:2是否评分:已评分评价描述:是否评分:已评分评价描述:5 .函数调用时通过“键-值”形式加以指定实际参数,即使用关键字参数,可以让函数更加清晰、 述中哪一个是错误的?()A. 关键字参数之间不存在先后顺序B. 不得重复提供实际参数C. 关键字参数可以位于位置参数之前D. 关键字参数必须位于位置参数之后试题编号:20200402-xc-013试题类型:单项选择题标准答案:C试题难度:一般试题解析:函数调用时通过“键-值”形式加以指定实际参数,即使用关键字参数,可以让函娄 字参数之间不存在先后顺序,但是关键字参数必须位于位置参数之后。考生答案:C考生得分:2是否评分:已评分评价描述:6 .以下关于函数的说法,错误的选项是?()A. 函数是一种功能抽象的模块B. 使用函数的目的只是为了增加代码复用C. 函数的使用包括定义函数和调用函数D. 函数名可以是任何有效的Python标识符试题编号:20200413-zwy-002试题类型:单项选择题标准答案:B试题难度:容易试题解析:知识点:函数的相关概念考生答案:B考生得分:2是否评分:已评分评价描述:7 .以下哪个关键字可用来创立自定义函数?()A. functionB. defC. classD. procedure试题编号:20200413-zwy-014试题类型:单项选择题标准答案:B试题难度:容易试题解析:知识点:自定义函数的创立与调用考生答案:B考生得分:2是否评分:已评分评价描述:8 .关于算法描述正确的选项是?()A. 算法是一种程序设计语言B. 算法每个步骤必须有确切的定义C. 算法就是数值计算方法D. 算法至少要有一个输入试题编号:20200413-zwy-038试题类型:单项选择题标准答案:B试题难度:容易试题解析:知识点:算法基础考生答案:D考生得分:0是否评分:已评分评价描述:9 .以下哪个不是Python中的内建函数?()A. ord (x)B. abs (x)C. chr (x)D. def (x)试题编号:20220213-ssn-006试题类型:单项选择题标准答案:D试题难度:一般试题解析:考生答案:B考生得分:0是否评分:己评分评价描述:10 .以下选项中,关于python函数参数的说法错误的选项是?()A. 在调用一个函数时,假设函数中修改了实参变量的值,那么对应的形参变量的值也被修改B. 函数一定要有参数和返回值C. 位置形参必须在关键字形参的前面D. 函数的形参在函数被调用时获得初始值试题编号:20220213-ssn-007试题类型:单项选择题标准答案:B试题难度:一般试题解析:考生答案:B考生得分:2是否评分:已评分评价描述:11 .关于Python的自定义函数的描述,以下哪个选项是错误的?()A. 函数名的命名规那么与变量名的命名规那么相同B. 如果有多个参数,各参数之间使用”隔开C. 函数没有参数,在函数名后面仍然要保存一对空的“()”,后面不需要加“:”D. 函数体相对于自定义函数的关键字必须保持一定的缩进试题编号:20220213-ssn-009试题类型:单项选择题标准答案:C试题难度:一般试题解析:自定义函数名的命名规那么与变量名的命名规那么相同,如果有多个参数,各参数之作 须在函数名后面保存一对空的“()”,冒号不可缺少,函数体相对于自定义函数的关键字必幺 考生答案:C考生得分:2是否评分:已评分评价描述:12 .执行以下程序,以下选项中哪一项为哪一项错误的?()def miao (x, y):z=x+y*2y 二xreturn zx=2y=3z=miao (x, y) +yA. 该函数名称为miaoB. 执行该函数后,变量x的值为2C. 执行该函数后,变量y的值为2D. 执行该函数后,变量z的值为11试题编号:20220213-ssn-010试题类型:单项选择题标准答案:C试题难度:一般试题解析:调用时函数返回值局部变量x=2, y=2, z=8,调用结束后返回主程序,全局变量x考生答案:D考生得分:0是否评分:已评分评价描述:13 .可以通过以下哪一个关键字,通过局部变量修改全局变量的值?()A. nonlocalB. globalC. nonglobalD. gioball试题编号:20220213-ssn-011试题类型:单项选择题标准答案:B试题难度:一般试题解析:可以通过global关键字,通过局部变量修改全局变量的值。考生答案:B考生得分:2是否评分:已评分评价描述:14 .设有以下函数,运行程序输出的结果是?()def fun (m, n):m-=n return ma=fun (4, 1)print (a)A. 1B. 2C. 3D. 4试题编号:20220213-ssn-012试题类型:单项选择题标准答案:C试题难度:一般试题解析:函数返回4-1的结果。考生答案:C考生得分:2是否评分:已评分评价描述:15 .有如下Python程序,运行该程序后,输出结果为?() def fun (s):st=s 1for i in range (1, len (s):if len(st)=0 or si!=stlen(st)-1: st=st+s ielse:st=stO:len(st)-lprint (st) fun (xxyyzzxyz)A. xyzB. xyzxyzC. xyxyzD. xxyyz试题编号:20220213-ssn-013试题类型:单项选择题标准答案:A试题难度:较难试题解析:i=L st=; i=2, st=y; i=3, st=;i=4, st=z; i=5, st=; i=6, st= 考生答案:c考生得分:0是否评分:已评分评价描述:16 .观察以下代码,说法错误的项是?() def fi (n):if n=l or n=2:s=lelse:s=fi(n-l)+fi(n-2)return sa=int (input (请输入 a 的值:)print(fi (a)A. 该程序段用递归算法来实现B. 语句“def fi (n): "中的n为形参C. 边界条件为n=lD. 当a=6时,程序输出8试题编号:20220213-ssn-014试题类型:单项选择题标准答案:C试题难度:一般试题解析:考生答案:D考生得分:0是否评分:已评分评价描述:17 .以下函数要计算1到100自然数的和,那么划线处应补充选项为?() def su (n):s =0while n > 0: return sprint (su (100)A. n=n-ls=s+nB. n=n+ls=s+nC. s=s+nn=n-lD. s=s+nn=n+1试题编号:20220213-ssn-015试题类型:单项选择题标准答案:C试题难度:一般试题解析:考生答案:C考生得分:2是否评分:已评分评价描述:18 .以下关于递归的描述不正确的选项是?()A. 递归函数一定包含条件控制语句B. 递归函数一定包含调用自身的语句C. 在调用自身函数时需要明确的边界终止条件D. 递归算法一般代码简洁,执行效率高,空间复杂度低试题编号:20220213-ssn-016试题类型:单项选择题标准答案:D试题难度:一般试题解析:考生答案:A考生得分:0是否评分:已评分评价描述:19 .以下关于递归与递推方法的比拟,正确的观点是?()A. 递推是将复杂问题分解成假设干个子问题,依次降解,求出低阶规模的解,代入高阶问:B. 递归是构造低阶规模的问题,并求出解,依次推导出高阶的问题以及解,直至求出问)C. 数学上的递推关系可以通过递归的方法来实现D. 递归算法代码简洁,运行速度比递推快,因此应该尽量采用递归的方法试题编号:20220213-ssn-017试题类型:单项选择题标准答案:C试题难度:一般试题解析:考生答案:C考生得分:2是否评分:已评分评价描述:20 .以下程序段的运行结果为?()def fun(a):if a<=l:return 1else:return fun(a-1)*2pri nt (fun (5)A. 4B. 8C. 16D. 25