admin 管理员组

文章数量: 1086019


2024年4月13日发(作者:红领巾爱学习入口)

ycl四级python真题答案

青少年软件编程(Python)等级考试试卷(四级)

分数:100 题数:3

一、单选题(共25题,共50分)

1. 关于函数,以下选项中描述错误的是? ( )

A. 函数能完成特定的功能,对函数的使用不需要了解函

数内部实现原理,只要了解函数的输入输出方式即可。

B. 使用函数的主要目的是减低编程难度和代码重用。

C. Python 使用 del 保留字定义一个函数。

D. 函数是一段具有特定功能的、可重用的语句组。

试题编号:-ysy-007

试题类型:单选题

标准答案:C

试题难度:容易

试题解析:Python 使用 def 保留字定义一个函数。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

2. Python机器研究方向的第三方库是? ( )

A. Turtle

B. TensorFlow

C. Pygame

D. Random

试题编号:-ysy-011

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:TensorFlow是人工智能领域类的深度研究库。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

3. Python可以将形式参数定义为可变参数,即传入函数

中的实际参数可以是任意多个,主要有“*parameter”以及

“**parameter”两种形式。以下关于可变参数的定义形式表述错

误的是? ( )

A. “*parameter”这种形式表示接受任意多个实际参数并将

其放到一个列表中

B. 如果想要使用一个已经存在的列表作为函数的可变参

数,可以在列表的名称前加“*”后作为形式参数进行调用

C. “**parameter”这种形式表示接受任意多个类似关键字

参数一样显示赋值的实际参数并将其放到一个字典中

D. 如果想要使用一个已经存在的字典作为函数的可变参

数,可以在字典的名称前加“**”后作为形式参数进行调用

试题编号:-xc-004

试题类型:单选题

标准答案:A

试题难度:较难

试题解析:可变参数“*parameter”这种形式表示接受任意

多个实际参数并将其放到一个元组中,如果想要使用一个已经

存在的列表作为函数的可变参数,可以在列表的名称前加“*”

后作为形式参数进行调用;“**parameter”这种形式表示接受任

意多个类似关键字参数一样显示赋值的实际参数并将其放到一

个字典中,如果想要使用一个已经存在的字典作为函数的可变

参数,可以在字典的名称前加“**”后作为形式参数进行调用。

考生答案:C

考生得分:0

是否评分:已评分

评价描述:

4. 关于以下程序,运行程序输出的结果是? ( )

def demo(a,b):

print(a+b)

mydict={'a':1,'b':2}

demo(**mydict)

demo(*mydict)

A. 3 3

B. 3 ab

C. ab 3

D. ab ab

试题编号:-xc-009

试题类型:单选题

标准答案:B

试题难度:较难

试题解析:如果想要使用一个已经存在的列表作为函数的

可变参数,可以在列表的名称前加“*”后作为形式参数进行调

用;如果想要使用一个已经存在的字典作为函数的可变参数,

可以在字典的名称前加“**”后作为形式参数进行调用。题目中

mydict是一个字典,使用“**”后进行调用,形参a与b将获得

对应键的值,如果使用“*”后进行调用,形参a与b将获得的

是一个元组中对应的字符a和b,a+b实现字符串的连接。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

5. 函数调用时通过“键-值”形式加以指定实际参数,即使

用关键字参数,可以让函数更加清晰、容易使用,关于关键字

参数的限制,以下表述中哪一个是错误的? ( )

A. 关键字参数之间不存在先后顺序

B. 不得重复提供实际参数

C. 关键字参数可以位于位置参数之前

D. 关键字参数必须位于位置参数之后

试题编号:-xc-013

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:函数调用时通过“键-值”形式加以指定实际参

数,即使用关键字参数,可以让函数更加清晰、容易使用,需

要注意的是,关键字参数之间不存在先后顺序,但是关键字参

数必须位于位置参数之后。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

6. 下列关于函数的说法,错误的是? ( )

A. 函数是一种功能抽象的模块

B. 使用函数的目的只是为了增加代码复用

C. 函数的使用包括定义函数和调用函数

D. 函数名可以是任何有效的Python标识符

试题编号:-zwy-002

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:知识点:函数的相关概念

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

7. 下列哪个关键字可用来创建自定义函数? ( )

A. function

B. def

C. class

D. procedure

试题编号:-zwy-014

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:知识点:自定义函数的创建与调用

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

. 关于算法描述正确的是? ( )

A. 算法是一种程序设计语言

B. 算法每个步骤必须有确切的定义

C. 算法就是数值计算方法

D. 算法至少要有一个输入

试题编号:-zwy-03

试题类型:单选题

标准答案:B

试题难度:容易

试题解析:知识点:算法基础

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

9. 以下哪个不是Python中的内建函数? ( )

A. ord(x)

B. abs(x)

C. chr(x)

D. def(x)

试题编号:-ssn-006

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:B

考生得分:0

是否评分:已评分

评价描述:

10. 以下选项中,关于python函数参数的说法错误的是?

( )

A. 在调用一个函数时,若函数中修改了实参变量的值,

则对应的形参变量的值也被修改

B. 函数一定要有参数和返回值

C. 位置形参必须在关键字形参的前面

D. 函数的形参在函数被调用时获得初始值

试题编号:-ssn-007

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

11. 关于Python的自定义函数的描述,下列哪个选项是错

误的? ( )

A. 函数名的命名规则与变量名的命名规则相同

B. 如果有多个参数,各参数之间使用“,”隔开

C. 函数没有参数,在函数名后面仍然要保留一对空的“()”,

后面不需要加“:”

D. 函数体相对于自定义函数的关键字必须保持一定的缩

试题编号:-ssn-009

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:自定义函数名的命名规则与变量名的命名规则

相同,如果有多个参数,各参数之间使用“,”隔开,即使函数

没有参数,也必须在函数名后面保留一对空的“()”,冒号不可

缺少,函数体相对于自定义函数的关键字必须保持统一的缩进。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

12. 执行以下程序,以下选项中哪一项是错误的? ( )

def miao(x,y):

z=x+y*2

y=x

return z

x=2

y=3

z=miao(x,y)+y

A. 该函数名称为miao

B. 执行该函数后,变量x的值为2

C. 执行该函数后,变量y的值为2

D. 执行该函数后,变量z的值为11

试题编号:-ssn-010

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:调用时函数返回值局部变量x=2,y=2,z=,

调用结束后返回主程序,全局变量x=2,y=3,c=+3=11。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

13. 可以通过下列哪一个关键字,通过局部变量修改全局

变量的值? ( )

A. nonlocal

B. global

C. nonglobal

D. globall

试题编号:-ssn-011

试题类型:单选题

标准答案:B

试题难度:一般

试题解析:可以通过global关键字,通过局部变量修改全

局变量的值。

考生答案:B

考生得分:2

是否评分:已评分

评价描述:

14. 设有以下函数,运行程序输出的结果是? ( )

def fun(m,n):

m-=n

return m

a=fun(4,1)

print(a)

A. 1

B. 2

C. 3

D. 4

试题编号:-ssn-012

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:函数返回4-1的结果。

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

15. 有如下 Python 程序,运行该程序后,输出结果为

def fun(s):

st=s[1]

for i in range(1,len(s)):

? ( )

if len(st)==0 or s[i]!=st[len(st)-1]:

st=st+s[i]

else:

st=st[0:len(st)-1]

print(st)

fun(xxyyzzxyz)

A. xyz

B. xyzxyz

C. xyxyz

D. xxyyz

试题编号:-ssn-013

试题类型:单选题

标准答案:A

试题难度:较难

试题解析:i=1,st=;i=2,st=y;i=3,st=;

i=5,st=;i=6,st=x;i=7,st=xy;i=,st=xyz

i=4,st=z;

考生答案:B

考生得分:0

是否评分:已评分

评价描述:

16. 观察下列代码,说法错误的项是? ( )

def fi(n):

if n==1 or n==2:

s=1

else:

s=fi(n-1)+fi(n-2)

return s

a=int(input(请输入a的值:))

print(fi(a))

A. 该程序段用递归算法来实现

B. 语句“def fi(n):”中的n为形参

C. 边界条件为n==1

D. 当a=6时,程序输出

试题编号:-ssn-014

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

17. 以下函数要计算1到100自然数的和,则划线处应补

充选项为? ( )

def su(n):

s =0

while n > 0:

return s

print(su(100))

A. n=n-1 s=s+n

B. n=n+1 s=s+n

C. s=s+n n=n-1

D. s=s+n n=n+1

试题编号:-ssn-015

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

1. 下列关于递归的描述不正确的是? ( )

A. 递归函数一定包含条件控制语句

B. 递归函数一定包含调用自身的语句

C. 在调用自身函数时需要明确的边界终止条件

D. 递归算法一般代码简洁,执行效率高,空间复杂度低

试题编号:-ssn-016

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

19. 以下关于递归与递推方法的比较,正确的观点是? ( )

A. 递推是将复杂问题分解成若干个子问题,依次降解,

求出低阶规模的解,代入高阶问题中,直至求出原问题的解

B. 递归是构造低阶规模的问题,并求出解,依次推导出

高阶的问题以及解,直至求出问题的解

C. 数学上的递推关系可以通过递归的方法来实现

D. 递归算法代码简洁,运行速度比递推快,因此应该尽

量采用递归的方法

试题编号:-ssn-017

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:

考生答案:B

考生得分:0

是否评分:已评分

评价描述:

20. 下列程序段的运行结果为? ( )

def fun(a):

if a<=1:

return 1

else:

return fun(a-1)*2

print(fun(5))

A. 4

B.

C. 16

D. 25

试题编号:-ssn-01

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:

考生答案:C

考生得分:2

是否评分:已评分

评价描述:

21. 以下函数要实现5的阶乘,则划线处应补充选项为

def fun(i):

if i<=1:

return 1

else:

return

print(fun(5))

A. i*(i-1)*(i-2)*...*2*1

B. (i-1)*fun(i)

? ( )

C. i*fun(i+1)

D. i*fun(i-1)

试题编号:-ssn-019

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

22. 以下常见算法中,体现分治思想的是

A. 解析算法

B. 枚举算法

C. 冒泡排序

? ( )

D. 对分查找

试题编号:-ssn-020

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

23. 对于序列9,,76,65,4,24,12,12,,1,采用

找,需要查找多少次? ( )

A. 5

B. 4

C. 3

“对分查找”法查

D. 2

试题编号:-ssn-021

试题类型:单选题

标准答案:C

试题难度:一般

试题解析:按二分查找法的规律,每次先查找中间值,进

行比较。

考生答案:D

考生得分:0

是否评分:已评分

评价描述:

24. 分治法所能解决的问题一般具有以下几项特征,下列

哪一项描述不正确? ( )

A. 该问题的规模缩小到一定的程度就可以容易地解决

B. 该问题可以分解为若干个规模较小的相同问题,即该

问题具有最优子结构性质

C. 利用该问题分解出的子问题的解可以合并为该问题的

D. 该问题所分解出的各个子问题之间包含公共的子子问

试题编号:-ssn-022

试题类型:单选题

标准答案:D

试题难度:一般

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

25. 一般用于安装Python第三方库的工具是? ( )

A. import

B. install

C. setup

D. pip

试题编号:-ssn-025

试题类型:单选题

标准答案:D

试题难度:容易

试题解析:

考生答案:D

考生得分:2

是否评分:已评分

评价描述:

二、判断题(共10题,共20分)

26. 如代码,运行之后,最终打印出的结果是4,请判断对

错。

正确 错误

试题编号:-LL-020

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:默认参数的值被改变了,所以将计算传入的两

个参数的值,结果就是4

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

左右两段代码运行之后,打印出的结果不相同!请判断对

吗?

根据题意,该题答案为:错误.

正确 错误

试题编号:-LL-025

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:第一段代码打印出的结果应该是5,第二段代

码变量b的值并没有被改动,打印出的结果是3,所以两段代

码结果不同。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

2. 为实现左边的打印效果,编写了如右边的代码。

请问,他这代码能正确打印出左边效果来吗?

正确 错误

试题编号:-LL-029

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:基本的递归,函数通过对自身的调用,实现每

将调用参数减1,所以,本题正确。

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

29. 为打印出5、4、3、2、1这个数字序列,编写了一个

递归函数,如所示。

请问,他这个程序是正确的吗?

正确 错误

试题编号:-LL-030

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:递归在判断之前,程序将永无止境,不会停止,

所以,这个程序写错了。正确的写法,应该把n(x-1),放到if

判断语句之后。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

30.

1、有abc三个口袋,a袋中有1粒糖,b袋中有2粒糖,

c袋中有3粒糖

2、小红与两人轮流在任意一袋中取糖出来。每次可以在

任意一袋中,取任意颗(比如,可在c袋中取3、2、1任意颗)

3、到最后,谁最后一次取,并将所有糖都取完了,谁就

获胜,获胜者将得到所有的糖。

让小红先取,自己后取。

小红说:不!先取的人肯定会输!

请判断,小红所说,是正确还是错误?( )

正确 错误

试题编号:-LL-032

试题类型:判断题

标准答案:正确

试题难度:困难

试题解析:

从最简单的开始:

1、如果总共只有1粒糖,则谁先谁胜;

2、如果有两袋,每袋中有1颗,显然谁先谁输:

3、如果有两袋,1袋中1颗,另一袋中有2颗,显然谁

先谁胜(只需拿掉2颗中的一颗,剩下条件就变成了上面2,

对方先,对方输);

4、如果有两袋,每袋都是2颗,显然谁先谁输(如果一

次拿掉2颗,则对方拿剩下的2颗,对方胜;如果只拿某袋中

的1颗,则变成了上面3,对方先,也是对方胜)

5、如果有三袋,每袋1颗,则显然谁先谁胜

6、如果有三袋,其中两袋有1颗,一袋2颗,显然谁先

谁胜,只需将2颗的拿掉,剩下两个1颗,就是上面2,对方

先对方输

7、如果有三袋,其中两袋有2颗,一袋1颗,显然谁先

谁胜(只需拿掉1颗的,剩下就变成了上面4,对方先,对方

输)

、如果三袋,分别有1、2、3颗,谁先谁输:如果从3中

拿1颗,就变成了上面7,对方先,对方胜;如果从3中拿2,

就变成上述6,也是对方胜,如果将3拿完,就变成上述3,

也是对方胜。所以,整个游戏,谁先谁输。

本题,是将复杂问题简化,然后逐步增加难度,直到解决

整个问题,是典型的分治算法的思想。同时,本问题也可编写

成Python游戏。

考生答案:错误

考生得分:0

是否评分:已评分

评价描述:

31. 听说,使用pygame模块可以编写很多有趣的小游戏,

于是他想在自己的电脑上安装这个模块。

他使用了如下命令进行安装,请问,他下面这条命令正确

吗?

正确 错误

试题编号:-LL-03

试题类型:判断题

标准答案:正确

试题难度:一般

试题解析:这是使用pip命令安装外部模块的基本命令。

本题中用法正确。使用了选项 -i ,表示从指定网址进行安装,

本题是从豆瓣的python仓库中进行安装的。

考生答案:错误

考生得分:0

是否评分:已评分

评价描述:

32. 匿名函数L(x1,y1,x2,y2)的返回值是(x1-x2)**2 + (y1-

y2)**2的计算结果。

L = lambda x1,y1,x2,y2:(x1-x2)**2 + (y1-y2)**2

正确 错误

试题编号:-wc-010

试题类型:判断题

标准答案:正确

试题难度:较难

试题解析:匿名函数的返回值是其函数体中的表达式的值

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

33. primenumber(number)函数是判断一个数是否是素数的

函数,将函数的循环条件“for i in range(2,number)”更改为“for i

in range(2,number//2)”能够降低primenumber(number)函数的时

间复杂度。

def primenumber(number):

if number < 2:

print(number,不是素数!)

else:

for i in range(2,number):

if number % i == 0:

print(number,不是素数!)

break

else:

print(number,是素数!)

正确 错误

试题编号:-wc-035

试题类型:判断题

标准答案:错误

试题难度:困难

试题解析:判断number是否是素数时,如果在:

1~number/2范围内存在一个数能够将number整除,那么

number就不是素数。例如:number=a×b,当a≥number/2时,

b

1~number/2范围内判断即可。虽然将number换成number/2,

但去系数后,时间复杂度仍为O(n)。

考生答案:正确

考生得分:0

是否评分:已评分

评价描述:

34. 在一个程序实现过程中,若某一部分的代码功能反复

出现了多次,我们可以把这段反复出现的代码定义成一个函数,

然后在需要的时候调用,这体现了函数代码的复用性。

正确 错误

试题编号:-zpf-002

试题类型:判断题

标准答案:正确

试题难度:容易

试题解析:

考生答案:正确

考生得分:2

是否评分:已评分

评价描述:

35. 执行以下代码:

def func(list_1):

list_1=[5,]

list_1=[20,12,53]

func(list_1)

t=tuple(list_1)

print(t)

程序输出的结果为:

正确 错误

试题编号:-zpf-007

试题类型:判断题

标准答案:错误

试题难度:一般

试题解析:

(5,)。

考生答案:错误

考生得分:2

是否评分:已评分

评价描述:

三、编程题(共3题,共30分)

36. 7个评委给每个选手打分,评委分数中去掉最高分与

最低分,计算所得平均分是每个选手的最后得分,保留2位小

数。

根据上述计算规则,编写自定义函数完成程序功能,完善

代码。

根据评委分数,计算去掉最高分与最低分后的平均分,保

留2位小数

函数名 def getScore(fs):

参数 fs:表示评委的分数,为列表

返回值 :返回选手的得分,保留2位小数。

def getScore(fs):

maxfs = 0

minfx =

n = ①

for f in fs:

if f > maxfs:

elif f < minfx:

minfx = f

yxf = sum(fs)-maxfs-minfx

gfs = ③

return gfs

fs = [9.56,9.6,9.7,9.67,9.1,9.21,9.75]

defen = ④

print(defen)

试题编号:-fcl-002

试题类型:编程题

标准答案:

参考程序:

def getScore(fs):

maxfs = 0

minfx =

n = len(fs) - 2

for f in fs:

if f > maxfs:

maxfs = f

elif f < minfx:

minfx = f

yxf = sum(fs)-maxfs-minfx

gfs = int(yxf / n * 100 +0.5) / 100

return gfs

fs = [9.56,9.6,9.7,9.67,9.1,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)。 (2分)

展示地址:点击浏览

考生答案:(此题已作答)

考生得分:12

是否评分:已评分

评价描述:

37. 素数是只能被1和本身整除的正整数,编写自定义函

数,实现判断正整数是否为素数。完善程序代码。

判断正整数n是否为素数,若是返回True;否则返回

False

函数名 def prime(n)

参数 n:表示正整数

返回值 :n是素数,返回True;否则返回

def prime(n):

if n < 2:

return False

else:

for i in range( ① ,n):

if ② :

return False

return ③

n = 7

False

if ④ :

print({}是素数.format(n))

else:

print({}不是素数.format(n))

试题编号:-fcl-007

试题类型:编程题

标准答案:

参考程序:

def prime(n):

if n < 2:

return False

else:

for i in range(2,n):

if n % i == 0:

return False

return True

n = 7

if prime(n):

print({}是素数.format(n))

else:

print({}不是素数.format(n))

试题难度:一般

试题解析:

评分标准:

①2 ; (2分)

②n % i == 0; (2分)

③True ;(2分)

④prime(n)。(2分)

展示地址:点击浏览

考生答案:(此题已作答)

考生得分:

是否评分:已评分

评价描述:

3. 编写程序计算n(n<=10)位数中,包含奇数个5的个数。

比如1位数中包含奇数个5的个数是1个。利用递推方法计算

n位数包含奇数个5的个数。完善划线处的代码。

c = [[0 for i in range(2)] for i in range(11)] #存放奇数个5和

偶数个5的二维列表

c[1][0] = 9 #一位数中包含偶数个5的个数

c[1][1] = 1 #一位数中包含奇数个5的个数

k = 9

n = 5

for i in range(2, ① ):

if i == n:

k = ②

c[i][0] = c[i-1][1] + k * c[i-1][0]

c[i][1] = ③

print(c[n][1])

试题编号:-fcl-009

试题类型:编程题

标准答案:

参考程序:

c = [[0 for i in range(2)] for i in range(11)] #存放奇数个5和

偶数个5的二维列表

c[1][0] = 9 #一位数中包含偶数个5的个数

c[1][1] = 1 #一位数中包含奇数个5的个数

k = 9

n = 5

for i in range(2,n+1):

if i == n:

k = k - 1

c[i][0] = c[i-1][1] + k * c[i-1][0]

c[i][1] = k*c[i-1][1] + c[i-1][0]

print(c[n][1])

试题难度:一般

试题解析:

评分标准:

① n+1 ;(3分)

② k - 1 ; (3分)

③ k*c[i-1][1] + c[i-1][0] 。(4分)

展示地址:点击浏览

考生答案:(此题已作答)

考生得分:0

是否评分:已评分

评价描述:


本文标签: 函数 试题 参数 问题 解析