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

2023年12月电子学会青少年软件编程(Python四级)等级考试试卷
客观题 四级 2023 2024-01-05 09:13:20 110

一、单选题

1.

列出第三方库的详细信息的pip指令是?( )

A.

pip install <第三方库名>

B.

pip download<第三方库名>

C.

pip show<第三方库名>

D.

pip list<第三方库名>

2.

对于如下自定义的函数:

 def myfunc(a,b,c):
     return a+b+c

以下调用该函数的语句中,能正确执行的是?( )

A.

myfunc(1,2)

B.

myfunc(a=3,2,1)

C.

myfunc(3,b=2,1)

D.

myfunc(3,2,c=1)

3.

使用*args和**kwargs形参来定义函数时,正确的说法是?( )

A.

使用*args代表列表,使用**kwargs代表元组

B.

可以在调用函数时传入多个实参

C.

使用*args代表元组,使用**kwargs代表列表

D.

使用*args代表字典,使用**kwargs代表列表

4.

下列程序中,当n=4时,返回结果为?( )

def x(n):
       if  n==1:
              return 1
       else:
              return n+x(n-1)
A.

12

B.

11

C.

10

D.

9

5.
def afun(n):
    s=1
    for i in range(1,n+1):
        s*=i
    return s

对以上代码解释错误的是?( )

A.

程序正常运行时,afun(n)函数的作用是求n的阶乘

B.

程序正常运行时,afun(n)函数的作用是求n+1的阶乘

C.

s是局部变量

D.

range()函数是Python内置函数

6.

下列代码的运行结果是?( )

def car_show(cars):
    for car in cars:
        print('good',car)
car_show(['BYD','Haval','Wuling'])
A.

good ['BYD','Haval','Wuling']

B.

'good','BYD'

    'good','Haval'

    'good','Wuling'

C.

good BYD Haval Wuling

D.

good BYD

    good Haval

    good Wuling

7.

关于函数参数的默认值设置,描述不正确的是?( )

A.

定义函数时,可以为某形参设定默认值

B.

如果为某形参设定了默认值,则在调用函数时就不能再为该形参传入新值

C.

如果为某形参设定了默认值,在调用函数时还可以为该形参再传入新值

D.

关键字形参就是一种为参数设置默认值的方式

8.

下列函数定义中,正确的是?( )

A.

def myfunc(a,b,c)

    print(myfunc(a,b))

B.

def myfunc(a=1,b,c):

    print(myfunc(a,b,c))

C.

def myfunc(a,b=1,c):

    print(myfunc(a,b,c))

D.

def myfunc(a,b,c=1):

    print(myfunc(a,b,c))

9.

关于下列代码解释错误的一项是?( )

def ZhongYao(a:str,b:int)->str:
    word=a*b
    print('重要的事情说{}遍:{}'.format(b,word))
    return ZhongYao
ZhongYao('学习','3')
A.

参数a的数据类型必须是字符串

B.

参数b的数据类型必须是整型

C.

函数指定了返回值的数据类型是字符串

D.

程序正常运行,输出结果是:

重要的事情说3遍:学习学习学习

10.

使用位置实参的方式调用函数时,下列哪种情况下程序一定会出错?( )

A.

传入的实参个数比形参个数多

B.

部分形参赋以默认值

C.

函数调用时,重新给赋予了默认值的形参传入新值

D.

部分实参以关键字赋值的方式去调用函数

11.

下列代码的运行结果是?( )

def exchange(a,b):
    a,b=b,a
    print(a,b)
a,b=3,5
exchange(a,b)
print(a,b)
A.

5 3

5 3

B.

3 5

3 5

C.

5 3

3 5

D.

5

3

3

5

12.

当n为6时,运行下列Python程序后的结果是?( )

def f(n):
     if n<=2:
          return 1
     else:
          return f(n-1)+f(n-2)
n=int(input("请输入一个正整数:"))
print(f(n))
A.

5

B.

8

C.

11

D.

13

13.

下列选项中,不属于递归特性的是?( )

A.

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

B.

递归算法体现了大事化小的思想

C.

递归效率不高,递归层次过多会导致栈溢出

D.

递归算法代码简洁,效率较高

14.

已知,从1到n的连续自然数相乘的积叫做阶乘,用符号n!表示,比如3!=1×2×3,规定0!=1。那么用递归算法求n的阶乘,递归式正确的是?( )

A.

f(0)=1,n=n*(n-1)

B.

f(0)=1,f(n)=f(0)*f(n-1)

C.

f(0)=1,f(n)=f(n)*f(n-1)

D.

f(0)=1,f(n)=n*f(n-1)

15.

想要在Python中导入math模块中的sqrt(x)函数,下列程序段错误的是?( )

A.

import math

math.sqrt(x)

B.

from math import sqrt as t

t(x)

C.

import math as m

m.sqrt(x)

D.

import math

sqrt(x)

16.

关于求解“找出所有满足各位数字之和等于8的三位数”时,在下列数值范围内,算法执行效率最高的是?( )

A.

0—999

B.

0—1000

C.

100—800

D.

107—800

17.

以下哪种情况下的代码块适合设计成函数?( )

A.

复杂的功能块

B.

难以看懂的功能块

C.

有性能要求的功能块

D.

会多次用到的功能块

18.

对于下列递归式子,当n=4时,F的值是?( )

F(n)=F(n-1)*2
F(1)=2
A.

2

B.

8

C.

16

D.

32

19.

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

def f(a,b): 
    c=a+b*2
    b=a
    return c 
a=1 
b=2
c=f(a,b)+b
A.

该函数名称为f

B.

执行该程序后,变量a的值为1

C.

执行该程序后,变量b的值为2

D.

执行该程序后,变量c的值为6

20.

调用函数的时候,所使用的参数是?( )

A.

实参

B.

位置参数

C.

关键字参数

D.

不定长参数

21.

斐波那契数列前n项是1,1,2,3,5,8,13......

补全下面程序代码,求第n项斐波那契数列的值。( )

def fib(n):
    if ______:
        return 1
    else:
        return fib(n-1) + fib(n-2)
A.

n == 2

B.

n < 2

C.

n == 3

D.

n < 3

22.

用分治法求两个数的最大公约数,代码和运行结果如下,请选择合适的代码完成程序?( )

def fun(m, n):
    if m % n == 0:
        return n
    else:
        return __________
print(fun(98, 56))

程序运行结果如下:

14

A.

fun(n, m-n)

B.

fun(n, m%n)

C.

fun(m, m-n)

D.

fun(m, m%n)

23.

下面函数实现的功能是?( )

def   mi(x, n):
    if   n == 0:
          return  1
    else:
          return  x*mi(x, n-1)
A.

计算x的n次方

B.

计算n的x次方

C.

计算x!*n

D.

计算x*n!

24.

函数中定义了4个参数,其中2个参数都指定了默认值,见下面代码,那么在调用函数时参数个数最少是?( )

def SiBianXing(a,b,c=5,d=8):
    ZhouChang=a+b+c+d
    return ZhouChang
SiBianXing( ? )
A.

0

B.

2

C.

1

D.

3

25.

下列有关分治算法思想的描述不正确的是?( )

A.

将问题分解成的子问题具有相同的模式。

B.

将问题分解出的各个子问题相互之间有公共子问题。

C.

当问题足够小时,可以直接求解。

D.

可以将子问题的求解结果合并成原问题的解。

二、判断题

1.

如果允许形参设置默认值,则函数定义时要先列出没有默认值的形参,再列出有默认值的形参。

A.正确 B.错误
2.

递归算法必须确保,需要解决的问题可以转化为一个或多个子问题来求解,这些子问题的求解方法与原问题相同,只是在数量和规模上不同,而且每次递归调用时,问题规模都能够缩小。

A.正确 B.错误
3.

当函数运行结束后,局部变量的值依然存在,下次函数调用可以继续使用。

A.正确 B.错误
4.

编程时,需要把实现复杂功能的代码封装起来,设计成函数。

A.正确 B.错误
5.

运行以下代码的时间复杂度为O(n^2)。

k=0
n=11
for i in range(n):
    k=k+1
for j in range(n):
    k=k+2
print(k)
A.正确 B.错误
6.

分治算法是把一个大问题分解为若干个规模较小、性质相同的子问题。最后子问题可以简单地直接求解,将所有子问题的解合并起来就是原问题的解。

A.正确 B.错误
7.

pip联网直接下载安装第三方库时,只能临时更换下载源,不能更改默认的下载源。

A.正确 B.错误
8.

对于递归而言,递推与回归,二者缺一不可。

A.正确 B.错误
9.

内置函数不需要使用关键字import导入就可以使用,自定义函数可以先调用后定义。

A.正确 B.错误
10.

将实现特定功能的代码块设计成函数,有助于提高整个程序的运行速度。

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