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

2021年3月电子学会青少年软件编程(Python四级)等级考试试卷
操作/编程 四级 2021 2022-10-29 18:03:39 63

一、单选题

1.

下列哪个不是Python中的内建函数?( )

A.

asc(x)

B.

ord(x)

C.

chr(x)

D.

abs(x)

2.

关于函数的定义语句,以下几项中正确的是?( )

A.

def f(c=2,a,b):

B.

def f(a,b=2,c):

C.

def f(*c,**d,a,b):

D.

def f(a,b,*c,**d):

3.

在Python程序中,设已定义函数op,它有一个整型传值参数,一个字符串型传值参数。设x,y为整型变量,z为字符串型变量,则下列能调用该函数的正确语句是?( )

A.

op

B.

op(x,y,z)

C.

op x,y

D.

op(x+y,z)

4.

下列哪个语句段的时间复杂度最低?( )

A.
if n%2==0:
    x=x*2
else:
    x=x+2


B.
n=1
while n<=100:
    x=x+2


C.
for i in range(100):
    for j in range(10):
        x=x+2


D.
for i in range(100):
    for j in range(i):
        x=x+2


5.

已知有n本按照书名拼音排序好的图书,使用对分查找法搜索其中任何一本书,最多查找次数为6次,则n的值可能为?( )

A.

20

B.

50

C.

80

D.

110

6.

下列程序段的正确运行结果是?( )

def fun(m,n):
    while m!=n:
        if m>n:
            m=m-n
        else:
            n=n-m
    return m
print(fun(24,16))


A.

4

B.

8

C.

-8

D.

2

7.

10个人站一列,分苹果,问第10个人分到多少个苹果,他说比前面一个人多分到2个,依次往前,都说比前面一个人多分到2个,最后问第一个人,他说分到10个苹果。用以下函数求第10个人分到的苹果数,则应补充选项为?( )

def  apple(n):
     if n == 1:
         return 10
     else:
         return                   
print(apple(10))


A.

apple(n)+2

B.

n+2

C.

apple(n-1)+2

D.

apple(n+1)-2

8.

调用以下函数时,语句“s=s+i”被执行的次数是?( )

def f():
    s=0
    i=1
    while i<10:
        if i%3==0 or s%2==1:
            s=s+i
        i=i+1
    print(s)


A.

3

B.

4

C.

5

D.

6

9.

关于python函数参数的说法正确的是?( )

A.

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

B.

在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改

C.

参数的值是否会改变,与函数中对变量的操作有关,与参数类型无关

D.

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

10.

运行以下代码,输出结果正确的是?( )

a=1
b=c=[]
def fun(a,c):
    a=2
    append(a)
fun(a,c)
print(a,b,c)


A.

2 [2] [2]

B.

1 [] [2]

C.

1 [2] [2]

D.

2 [] [2]

11.

有100枚金币,其中有1枚轻1克的假金币,现在要找出这枚假金币,但身边只有1个没有刻度的天秤。小明先是将金币分成50枚一堆,共两堆称重,在轻的那一堆中又分成两堆,接着在轻的25枚中分成12,12,1三堆称重,若两堆12枚的重量相同,则假币为单独剩下的那一枚,否则在轻的那一堆中继续按照之前的办法称下去,直到找到假金币。请问小明采用的办法与哪个算法有着相似之处?( )

A.

递归

B.

分治

C.

枚举

D.

贪心

12.

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

A.

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

B.

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

C.

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


D.

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

13.

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

def fun(x,y=5):
    return x*y
a=fun(10,10)
print(a)


A.

100

B.

50

C.

10

D.

运行出错

14.

如果需要在某函数内部调用上一层的局部变量,则可以使用( )关键字。

A.

Local

B.

nonlocal

C.

global

D.

nonglobal

15.

用匿名函数方式求两个数中较大的数,下列定义语句格式正确的是?( )

A.

result = lambda 'x,y': y if x> y else x

B.

result= lambda x,y: y if x> y else x

C.

result= lambda 'x,y': x if x> y else y

D.

result= lambda x,y: x if x> y else y

16.

某程序代码设计如下,若输入整数5,则最终输出的结果为?( )

def fact(x):
    if x==1:
        s=1
    else:
        s=fact(x-1)*x
    return s
n=int(input("请输入一个大于1的整数:"))
print(fact(n)+fact(n-1))


A.

120

B.

24120

C.

144

D.

12024

17.

观察程序段,以下说法错误的是?( )

def fib(n):
    if n==1 or n==2:
        s=1
    else:
        s=fib(n-1)+fib(n-2)
    return s
m=int(input("请输入m的值(m>2):"))
print(fib(m))


A.

如果输入m的值为8,打印的结果为20

B.

该程序段用了递归来实现

C.

如果缺少语句“return s”,程序会报错

D.

语句“def fib(n):”中的n为形参

18.

关于递归与递推方法的比较,错误的观点是?( )

A.

递归是将复杂问题降解成若干个子问题,依次降解,求出低阶规模的解,代入高阶问题中,直至求出原问题的解;

B.

递推是构造低阶的问题,并求出解,依次推导出高阶的问题以及解,直至求出问题的解;

C.

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

D.

递归算法代码简洁,运行速度比递推快,因此应该尽量采用递归的方法;

19.

不超过100个元素的有序数列,使用二分查找能找到指定的元素,可能的查找次数不包括?( )

A.

1次

B.

6次

C.

7次

D.

8次

20.

运行以下代码,正确的打印结果是?( )

def f():
    c=0
    for i in range(4,51,4):
        if i%6==0:
            c=c+1
    return c
print(f())


A.

1

B.

2

C.

4

D.

8

21.

运行以下代码,正确的打印结果是?( )

def f(s):
    t=0
    max=0
    for i in s:
        if i>="0" and i<="9":
            t=t+1
        else:
            if t>max:
                max=t
            t=0
    print(max)
list="123ab45cd6d"
f(list)


A.

0

B.

1

C.

2

D.

3

22.

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

A.

函数是可重复使用的,用来实现单一,或相关联功能的代码段

B.

函数中必须return语句

C.

函数好处是模块性,但不能提高代码的利用率

D.

函数内容以冒号起始,可以不缩进

23.

下列哪个不是Python第三方库的pip安装方法?( )

A.

使用pip命令

B.

使用wheel命令

C.

集成安装方法

D.

文件安装方法

24.

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

F(n)=F(n-1)+3    F(1)=2

A.

2

B.

5

C.

11

D.

14

25.

关于Turtle库的表述中,错误的是?( )

A.

Turtle库是Python语言中一个很流行的绘制图像的函数库。

B.

画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。

C.

turtle.circle( )是只能画一个指定半径为r的圆。

D.

turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

二、判断题

1.

下列程序段返回的值为“Hello!Python”。

lst="Hello!Python"
def f():
    global lst
    lst="Hello!"
    return lst
f()
print(lst)


A.正确 B.错误
2.

使用python -m pip install --upgrade pip命令能够升级pip。

A.正确 B.错误
3.

算法复杂度分析的目的是分析算法的效率,以求改进。

A.正确 B.错误
4.

使用分治算法求解,子问题不能重复。

A.正确 B.错误
5.

设计一个程序来求xn(x的几次方)的值,算法思想是:把xn转换为x*xn-1,而xn-1又可以转换为x*xn-2,如此重复下去,直到x*x0,而x0=1,从而求出了xn的值。这个程序可以用递归来实现。

A.正确 B.错误
6.

sum=0

for i in range(5):

    sum=sum+i

print(sum)

运行以上程序,输出结果是15。

A.正确 B.错误
7.

在python函数中,局部变量不能与全局变量重名。

A.正确 B.错误
8.

下列程序段能正确打印1。

def f(a,b):
    a=a+b
    b=a-b
    a=a-b
    return b
print(F(1,4))


A.正确 B.错误
9.

def add(a, b, c=0):

    return a+b+c

print(add(1, 2, 4))

这段程序的运行结果为3。

A.正确 B.错误
10.

已有函数def demo(*p):return sum(p),表达式 demo(1, 2, 3, 4) 的值为10。

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