万卷网> 电子学会考级 >Python等级考试 > 2023年9月电子学会青少年软件编程(Python四级)等级考试试卷

2023年9月电子学会青少年软件编程(Python四级)等级考试试卷
客观题 四级 2023 2023-10-16 11:18:05 46

一、单选题

1.

执行如下Python代码的结果是?( )

def area(r,pi=3.14):
     return r*r*pi
print(area(2,10))


A.

40

B.

200

C.

400

D.

20

2.

下列哪个语句能够定义参数个数不确定的函数?( )

A.

hs(parameters)

B.

hs(parameters[])

C.

hs(parameters{})

D.

hs(*parameters)

3.

执行如下Python代码,输出结果是?( )

def hs(num):
    num += 1
    return num
n=10
s=hs(n)
print(s)


A.

11

B.

10

C.

1

D.

运行错误

4.

下列代码可以求两个数的最小公倍数。请认真阅读下列代码运用了什么算法?( )

def lcm(s,m,n):
    if s%n==0:
        return s
    else:
        return lcm(s+m,m,n)
a=int(input('请输入第1个数:'))
b=int(input('请输入第2个数:'))
c=lcm(a,a,b)
print('{}和{}的最小公倍数是{}'.format(a,b,c))


A.

枚举

B.

解析

C.

递归

D.

二分

5.

关于函数,正确的描述是?( )

A.

规范的函数设计都应该带有返回值

B.

函数体中,只要遇到break关键字,函数就结束

C.

函数体中,只要遇到return关键字,函数就结束

D.

函数的返回值只能是整型、浮点型、布尔型和字符串

6.

在Python中导入第三方库的主要关键字是?( )

A.

from

B.

import

C.

pip

D.

install

7.

执行如下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

8.

定义以下函数: 

def func(x,y,z=2): 

    print(x+y+z) 

分别以func(1,2,3)和func(1,2)语句调用该函数,运行后的结果分别是?( )

A.

6;出错

B.

5;出错

C.

5;5

D.

6;5

9.

两位同学玩猜数字游戏,规则如下:一方在心里默想一个范围在1-100之间的数,如果另一方猜的数字比对方想的要大,就说大了;如果猜的数字比想的要小,就说小了,直到猜中数字。那么使用二分查找法最多需要猜测的次数是?( )

A.

10

B.

8

C.

7

D.

6

10.

关于全局变量和局部变量,正确的描述是?( )

A.

通俗来说,无缩进的变量都是全局变量

B.

函数体中,只能使用局部变量

C.

Python程序中,全局变量与局部变量不允许重名

D.

函数体中,只能通过实参传递的方式实现对全局变量数值的使用

11.

考察以下函数定义代码:

def func(x:int,y:str)->str:

    z=x*y

    return z

以下陈述正确的是?( )

A.

Python是一种动态类型语言,不强制要求指定参数类型,上述代码行是不符合Python语法的

B.

为提高程序的可靠性,Python函数定义时允许为形参指定数据类型,也允许为返回值指定类型

C.

由于为函数指定了返回值类型,变量z一定要做类型转换后,才能用于上述return语句中

D.

由于为形参指定了不同的数据类型,变量x和y也需要先做类型转换后才能进行上述运算

12.

一球从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.

二分

13.

在Python中,以下哪个代码是安装numpy模块的方法?( )

A.

pip install numpy

B.

pip uninstall numpy

C.

install numpy

D.

setup numpy

14.

《阅微草堂笔记》里描述了槐树果实“响豆”,在夜里爆响,这种豆一棵树只有一粒,难以辨认出。所以古人就等槐树开花结果后,用许多布囊分别贮存豆荚,用来当枕头。夜里如果没有听到声音,便扔掉。如果有爆响声。然后把这一囊的豆荚又分成几个小囊装好,夜里再枕着听……如此这么分下去直到找到响豆。以上故事体现的算法是?( )

A.

顺序查找

B.

枚举算法

C.

解析算法

D.

分治算法

15.

下列哪项不是分治算法所具有的特征?( )

A.

求解问题的规模缩小到一定的程度就能够容易地解决

B.

求解题可以分解为若干个规模较小的不同问题

C.

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

D.

求解问题所分解出的各个子问题是相互独立的

16.

在嵌套函数中,也就是一个函数里面还有一个函数,如果内部函数需要修改外部变量的值,处理的方法是?( )

A.

只能通过不定长参数传递来实现

B.

使用local关键字

C.

使用nonlocal关键字

D.

使用global关键字

17.

有如下Python程序,输出的结果是?( )

def whao(year = '2023'):
    print('你好' + year)
whao()
A.

你好

B.

你好2023

C.

你好year

D.

没有输出

18.

有一根绳子,第一次剪去一半多2米,第二次剪去剩下的一半多2米,第三次剪去剩下的一半多2米,第四次剪去剩下的一半多2米,第五次剪去剩下的一半多2米,此时绳子还剩2米。这根绳子长几米?想解决这个问题的话,可以采用以下哪种算法?( )

A.

排序

B.

递推

C.

解析

D.

枚举

19.

在自定义函数中,如果发现局部变量与全局变量同名,则?( )

A.

程序会出现语法错,不能运行

B.

程序可以运行,局部变量与全局变量互不干扰

C.

可能会出现局部变量修改全局变量的值的情况,需要检查程序设计是否合理

D.

不允许出现这种情况,应该采用参数传递的方法去解决问题

20.

用递归算法求1~n个连续自然数的乘积的代码如下,请选择合适的代码补全程序?( )

def Chengji(n):

    if n <=1:

        return 1

    else:

        return _____?______

print(Chengji(3))

A.

n*Chengji(n)

B.

n*Chengji(n-1)

C.

n*Chengji(n+1)

D.

n×Chengji(n-1)

21.

小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个。第二天早上又将剩下的桃子吃一半,又多吃一个。以后每天早上吃前一天剩下的一半另加一个。到第5天早上猴子想再吃时,发现只剩下一个桃子了。问第一天猴子共摘多少个桃子?

这个问题可以用递归来解决,代码如下:

def peach(day):
    if day==1:
        return 1
    return (peach(day-1) + 1)*2
s=peach(5)
print('一共有%d只桃子'%(s))

请问第2行的“if day == 1”代码起到的作用是?( )

A.

结束递归的边界条件

B.

开始递归的边界条件

C.

调用自身

D.

递归过程中的变化

22.

编写计算正方体体积的匿名函数,下列哪一个语句是正确的?( )

A.

rst = lambda a : a * 3

B.

lambda a : a * 3

C.

rst = lambda a : a ** 3

D.

lambda a : a ** 3

23.

下列有关函数的描述中,正确的是?( )

A.

函数中必须有return语句

B.

在函数内部不能使用全局变量

C.

函数能提高应用的模块化程度和代码的重复利用率

D.

函数内容以大括号起始,并且缩进

24.

用枚举算法求解“100以内既能被3整除又能被4整除的元素”时,在下列数值范围内,算法执行效率最高的是?( )

A.

1~101

B.

4~100

C.

12~100

D.

12~96

25.

用递推算法求解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)

二、判断题

1.

命令pip download <第三方库>表示下载并安装指定的第三方库。( )

A.正确 B.错误
2.

二分查找又称对折半查找,例如:在数列34、17、25、9、10、3中查找3,适合采用二分查找法。( )

A.正确 B.错误
3.

关键字实参通过“关键字=值”的方式传值,函数参数全部采用此方式传值时,不需要考虑函数调用过程中形参的顺序。( )

A.正确 B.错误
4.

下面代码的时间复杂度为O(n*n)。( )

arr = [ 2, 3, 4, 10, 40 ] 
n = len(arr)
for i in range(n):
    for j in range(0, n-i-1): 
        if arr[j] > arr[j+1] :
            arr[j], arr[j+1] = arr[j+1], arr[j]


A.正确 B.错误
5.

函数是将实现相同功能的代码封装在一起,实现代码复用。( )(2023.9python考级四级第26题)

A.正确 B.错误
6.

递归算法中,必然存在函数体内调用自身的情况,可以在最后调用,也可以在中间调用。( )

A.正确 B.错误
7.

递归算法不涉及高深的数学知识,使得很多比较复杂的问题,也可以用简洁的代码解决,代码的执行效率比较高,所以即使有其他算法可行,也应该首选递归算法解决问题。( )

A.正确 B.错误
8.

通过把某些特定功能语句设计成自定义函数,可以简化主程序的编写。( )

A.正确 B.错误
9.

函数的定义代码不需要在主程序调用函数之前。( )

A.正确 B.错误
10.

Python程序中,自定义函数可以放在整个程序的开头,也可以放在主程序之后,比较自由。( )

A.正确 B.错误
公众号
客服 反馈
顶部