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

2024年12月电子学会青少年软件编程(Python四级)等级考试试卷
客观题 四级 2024 2025-02-09 17:00:14 86

一、单选题

1.

以下关于列表p内元素排序程序的时间复杂度为?( )

for a in range(n-1):
   for b in range(n-1-i):
      if(p[b]<p[b+1]):
           tmp=p[b]
           p[b]=p[b+1]
           p[b+1]=tmp
A.

O(n)

B.

O(nlogn)

C.

O(n^2)

D.

O(n^3)

2.

运行下列代码,输出结果为?( )

def fun(x, y, z):
    print(z, x)
fun(1, 2, 3)
A.

1 2

B.

3 2

C.

3 1

D.

1 3

3.

下列程序用递推的方法求数列的值,执行该程序后输出结果是?( )

def fib(n):
    a=b=1
    for i in range(3,n+1):
        c=a+b
        a=b
        b=c
        print(c)
fib(7)
A.

21

B.

13

C.

8

D.

5

4.

某农户养了若干只鸡。第一天卖掉其中一半加一只,以后每天都卖掉剩下的一半加一只。到第8天的时候发现只剩一只鸡了。请问该农户一开始有多少只鸡? 这个问题用下列什么算法解决?( )

A.

递推

B.

解析

C.

枚举

D.

分治

5.

下列哪个命令能显示电脑上已安装的Python库?( )

A.

pip list

B.

pip dir

C.

pip print

D.

pip config

6.

以下有关位置实参和关键字实参的表述中,错误的选项是?( )

A.

位置实参和关键字实参可以混用

B.

形参不占用内存地址

C.

调用函数时,如给函数提供了实参,则优先使用实参,同时更改形参的默认值,便于下次调用

D.

形参设定默认值,是为了简化函数的调用

7.

Python中,无需导入math库,可以直接使用的函数是?( )

A.

ceil()

B.

floor()

C.

round()

D.

sqrt()

8.

阅读下列程序,运行结果正确的是?( )

def f(x):
    if x==1:
        return 0
    else:
        return (x*x-1)+f(x-1)
print(f(3))
A.

10

B.

11

C.

12

D.

13

9.

小明喜欢画画,他有一张大画布,画布上有一个大正方形。他想知道如果把这个大正方形分成4个小正方形,然后再把这4个小正方形各自再分成4个更小的正方形,这样一直分下去,最后会得到多少个正方形?根据解题思路请在下面横线上填上正确代码?( )

def fun(n):

    if n == 0:

        return 1

    else:

        return _________

print(fun(4))

A.

fun(n-4) * 4

B.

fun(n-1) * 4

C.

fun(n-1) * 2

D.

fun(n-2) * 2

10.

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

A.

import math

math.sqrt(x)

B.

from math import sqrt as sq

sq(x)

C.

import math as m

m.sqrt(x)

D.

import math

sqrt(x)

11.

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

def jc(a):
    if a ==1 :
        return 1
    else:
        return a * jc(a-1)
print(jc(jc(3)))
A.

3

B.

6

C.

120

D.

720

12.

如下代码,运行之后,最终打印结果是?( )

def P(a,b=3): 
     a=2 
     return a*b 
print(P(3,4))
A.

6

B.

8

C.

4

D.

12

13.

下面关于递归函数的说法,正确的是?( )

A.

一般来说,递归函数的执行效率高于非递归函数

B.

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

C.

递归函数必须明确嵌套调用的次数

D.

递归函数必须有明确的边界终止条件

14.

运行以下代码,请输出结果?( )

x = 0
def fun():
    global x
    x += 10
print(x)
fun()
print(x)
A.

0

B.

0

10

C.

10

10

D.

10 

0

15.

关于计算圆锥体积的匿名函数的定义和使用,以下哪一个语法格式是正确的?( )

A.

lambda r,h:3.14*r*r*h/3 

print(lambda(5,10))

B.

lambda r,h=9,3.14*r*r*h/3 

print(lambda(5))

C.

V=lambda r,h=9:3.14*r*r*h/3 

print(V(5,10))

D.

V=lambda r,h=9,3.14*r*r*h/3 

print(V(5))

16.

以下关于global关键字表述正确的是?( )

A.

global关键字只能在程序最开始初定义

B.

global关键字只能在变量使用前定义

C.

global关键字通过局部变量修改全局变量的值

D.

global关键字通过全局变量修改局部变量的值

17.

以下是比较两个数的大小的函数,输出结果为?( )

def fun(a, b, c):
    if a > b:
        c = a
    else:
        c = b
print(fun(1, 2, 3))
A.

1

B.

2

C.

3

D.

None


18.

调用以下自定义函数时,将实参与形参进行关联,方式错误的是?( )

def f(a,b,c):
    print(a,b,c)
A.

f(1,2,3)

B.

f(b=2,a=1,c=3)

C.

f(1,b=2,3)

D.

f(1,2,c=3)

19.

运行以下代码,请输出结果?( )

def fun(n):
    s = 0
    for i in range(n):
        s += i
    return s
print(fun(10))
A.

55

B.

45

C.

50

D.

60

20.

运行以下代码,请输出结果?( )

def fun(x):
    return x * x
print(fun(fun(fun(2))))
A.

16

B.

32

C.

128

D.

256

21.

现有24颗药丸,重量都是0.1g,其中一颗药丸不小心被污染了,外观没有变化,但是重量变重了。如果有一架天平,最多只能称重四次,要把这个被污染的药丸找出来。这个问题可以用下列哪种算法思想解决?( )

A.

枚举

B.

分治

C.

递归

D.

递推

22.

物理实验课的电路故障分析,有一块电路板的AB两点间串联线路不通,是由于其中一处焊口脱落造成的。假设AB线路间有100个焊接点,现用二分法检测,找出焊口脱落点,至多需要检测多少次?( )

A.

7

B.

8

C.

9

D.

10

23.

下列关于递推算法思想的描述正确的是?( )

A.

将一个大问题分解为若干子问题,且子问题与大问题是相同的问题,构成递推算法思想

B.

递推算法思想需要有明确的终止条件

C.

递推算法思想需要有明确的递推公式

D.

任何问题都可以用递推算法解决

24.

小明的妈妈在超市里买了一些商品,商品的价格放在列表里,现在超市对商品进行打折处理,请运行如下代码输出结果?( )

def fun(lst):
    total = 0
    for x in lst:
        if x >= 100:
            total += x * 0.5
        else:
            total += x
    return total
goods = [140, 90, 120, 60]
print(fun(goods))
A.

390.0

B.

280.0

C.

260.0

D.

150.0

25.

以下选项中,关于python函数参数的说法正确的是?( )

A.

定义函数时不能省略参数

B.

在调用函数之前,需对函数进行定义

C.

可以给函数形参设置默认值,当函数调用时给定实参新的数值时,函数将使用默认值

D.

函数中允许位置实参和关键字实参混用,没有先后顺序

二、判断题

1.

Python3.5之后的版本新增了对函数参数和返回值的类型指定和检查,新建变量时也可以指定类型。以下代码,只能接受str类型的参数,否则就会报错。( )

def say(name:str, greet:str)->str:
    return name + greet
print(say("小明", "你好!"))
A.正确 B.错误
2.

运行如下代码:

fun = lambda x, y = 10 : y - x

print(fun(5, 8))

运行结果为:5。( )

A.正确 B.错误
3.

运行如下代码,输出结果为5。( )

x = 1
y = 5
def fun():
    global x
    x = 4
    y = 3
    if y > x:
        return y
    else:
        return x
print(fun())
A.正确 B.错误
4.

函数中return语句可以有任意个,但是在函数运行过程中只会执行其中一个。( )

A.正确 B.错误
5.

在混合使用位置实参、关键字实参时,对应函数中有默认值的形参与没有默认值的形参位置没有要求,都可以通过关键字实参传值。( )

A.正确 B.错误
6.

时间复杂度是用来衡量算法效率的重要指标,可以反应数据规模和代码执行时间之间关系。( )

A.正确 B.错误
7.

求斐波那契数列第n项可以用递归思想解决,也可以用递推思想解决。( )

A.正确 B.错误
8.

将一个难以直接解决的大问题,分类整理成几种规模较小的不同类问题,再分别击破的方法,就是分治算法。( )

A.正确 B.错误
9.

安装Python第三方库只能使用pip命令。( )

A.正确 B.错误
10.

定义函数或过程时,如果函数在内部调用函数本身,这个函数就是递归函数。( )

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