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

2021年6月电子学会青少年软件编程(Python四级)等级考试试卷
操作/编程 四级 2021 2022-10-30 11:27:49 94

一、单选题

1.

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

A.

使用函数的唯一目的是减少代码的重用

B.

不带return的函数返回值是None

C.

带有默认值的参数可以放在位置参数之前

D.

函数可以有多个参数,参数之间使用;隔开

2.

若以下程序段的运行结果为“*#*#*”,则空格   (1)   、   (2)   处填写结果不可能为?( )

def f(n):
    s=""
    for i in range(     (1)     ,n):
        if i % 2==1:
            s=s+"*"
        else:
            s=s+"#"
    return s
print(f(     (2)     ))


A.

3,8

B.

3,7

C.

9,14

D.

1,6

3.

下列程序段中自定义函数do(n)的作用是?( )

def do(n):
    s=0
    f=1
    for i in range(1,n+1,2):
        s=s+1/i*f
        f=-f
    return s
print(do(10))


A.

求1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10的值

B.

求1+1/3+1/5+1/7+1/9的值

C.

求1-1/3+1/5-1/7+1/9-1/10的值

D.

求1-1/3+1/5-1/7+1/9的值

4.

下列程序使用了哪种算法?( )

def fact(n):
    if n==0:
        return 1
    else:
        return n*fact(n-1)


A.

递推

B.

递归

C.

排序

D.

分治

5.

下面关于递归算法的描述,错误的是?( )

A.

任何递归程序都可以改写成非递归程序

B.

定义简单,逻辑清晰

C.

算法的执行效率较高

D.

原问题与子问题在结构上必须相似

6.

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,要求输出一年内兔子的数量是多少。如果采用递归算法来编程,则核心的递归逻辑应该是?( )

A.

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

B.

f(n) = f(n-1)+n

C.

f(n) = f(n-1)+f(n-2)

D.

f(n) = f(n-1)+ (n-1)f(n-2)

7.

在解决问题过程中,常用的“二分法”是一种什么算法?( )

A.

分治

B.

递归

C.

推理

D.

递推

8.

下列哪个是正确的函数名?( )

A.

Plan_2021

B.

2021plan

C.

return

D.

10plan10

9.

以下程序是用什么算法思维来显示数列 1,4,7,10,13,16 ?( )

a=1
for i in range(6):
    print(a)
    a+=3


A.

递归

B.

递推

C.

分治

D.

枚举

10.

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

def f(a,b):
    c=a**2+b
    b=a
    return c
a=5
b=100
c=f(a,b)+b
print(c)


A.

210

B.

225

C.

130

D.

115

11.

以下能正确计算出“1!+3!+5!”值(n!=1x2x3…xn)的自定义函数是?( )

A.
def f():
    s=0
    t=1
    for i in range(1,6,2):
        t=t*i
        s=s+t
    return s


B.
def f():
    s=0
    t=0
    for i in range(1,6,2):
        t=t*i
        s=s+t
    return s


C.
def f():
    s=0
    t=1
    for i in range(1,6,2):
        t=t*i
        if i%2==1:
            s=s+t
    return s


D.
def f():
    s=0
    t=1
    for i in range(1,6):
        t=t*i
        if i%2==1:
           s=s+t
    return s


12.

安装wheel,wheel用于离线安装已经下载到本地的whl文件,可以在命令窗口直接运行?( )

A.

pip list

B.

pip wheel

C.

pip unistall wheel

D.

pip install wheel

13.

下列几个选项中,不是Python定义函数规则的是?( )

A.

def关键字开头,后接函数名加括号,以冒号结束

B.

Python定义函数时,必须声明形参类型

C.

返回值写在return后面

D.

使用函数名( )的方式调用函数

14.

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

A.

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

B.

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

C.

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

D.

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

15.

在Python中,调用下面函数的返回值为?( )

def fun():

    x=101

A.

None

B.

101

C.

程序报错

D.

x=101

16.

以下几项关于函数的说法,错误的是?( )

A.

函数是一段具有特定功能的语句组

B.

调用函数时,参数传入的顺序必须与定义时保持一致

C.

在一个程序中,函数的定义可以放在函数调用代码之后

D.

使用函数可以增加代码重复利用率,还可以降低维护难度

17.

以下哪项不是使用分治法解决问题的步骤?( )

A.

分解

B.

求解

C.

合并

D.

判断

18.

以下函数的返回值是?( )

def pic(a:int,b:str)->str:
    c=a*b
    print(c)
    return c
pic(5,’*#*’)


A.

*#**#**#**#**#*

B.

5

C.

5*#*

D.

程序出错

19.

对比两个求等差数列1+2+…+n的和的程序,其算法效率?( )

程序1:

n=int(input())

s=(1+n)*n/2

print(s)


程序2:

n=int(input())

s=0

for i in range(n+1):

    s=s+i

print(s)

A.

程序1比程序2高

B.

程序2比程序1高

C.

一样高

D.

不能判断

20.

下列哪个选项的返回值与其他三项不同?( )

A.

round(3.176)

B.

abs(-3)

C.

ord('3')

D.

len([1,2,3])

21.

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

A.

递归思想是将大型复杂的问题转化为一个与原问题相似的规模较小的问题来求解

B.

递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,它不是分治策略的具体体现

C.

递归必须有终止递归的条件

D.

递归是在过程或函数里调用自身

22.

对自然数1至n求和,如果将递推式f(n)=f(n-1)+n(n>1)转化成递归函数,则递归出口是?( )

A.

f(1)=1

B.

f(1)=0

C.

f(0)=1

D.

f(0)=0

23.

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

def demo(lst, k):
    if k<len(lst):
        return lst[k:]+lst[:k]
lst=[1,2,3,4,5,6]
print(demo(lst,4))


A.

[4,5,6,1,2,3]

B.

[5,6,1,2,3,4]

C.

[6,5,4,3,2,1]

D.

[1,2,3,4,5,6]

24.

在Python Shell提示符下输入以下哪个选项,回车后,再输入pi,回车,能得到数值3.141592653589793?( )

A.

import math

B.

import math as pi

C.

from math import PI

D.

from math import *

25.

下列选项中,哪个选项调用如下函数会报错?( )

def show(numbers):
    for n in numbers:
        print(n)


A.

show([4,5,6])

B.

show('Chinese')

C.

show(3,4)

D.

show((4,5,6))

二、判断题

1.

Python程序是模块化架构,以.py的文件可以作为一个模块被引用。一些Python爱好者和支持者开发和分享了大量扩展库(包),可以根据需要用包管理器来安装或自定义,体现了Python语言强大的扩展性。

A.正确 B.错误
2.

将一个复杂的问题分解成若干个规模较小的子问题后,能不能利用分解出的子问题的解合并得到原问题的解是最关键的特征,它决定了是否可以使用分治算法。

A.正确 B.错误
3.

将一个大问题分解为若干子问题,且子问题与大问题是相同的问题,就构成了递归。

A.正确 B.错误
4.

递归方法的运用不仅会简化主程序的设计,也会大大减少程序的代码量。

A.正确 B.错误
5.

已知大写字母“A”对应的ASCII码值为65,变量ch保存输入的大写英文字母,则语句chr((ord(ch)+1-ord("A")) % 26+ord("A"))能实现大写英文字母后移一位,如A→B, B→C, ……Y→Z, Z→A。

A.正确 B.错误
6.

通常问题的规模越大算法执行的时间就越长,算法执行时间的增长率和问题规模的增长关系,称为空间复杂度。

A.正确 B.错误
7.

下列程序段运行后,打印结果为9。

def f():
    s=0
    for i in range(3,1,-1):
        if i<=1:
            x=1
        if i<=2:
            x=2
        if i<=3:
            x=3
        s=s+x
    return s
print(f())


A.正确 B.错误
8.

可以统计字符串、列表、元组、字典等内某元素个数的Python内置函数是index()。

A.正确 B.错误
9.

判断下列代码的正确与错误。

def f(a,b,c):

    print(a+b,b,c-a)

f(8,b=2,6)

运行上述程序段,结果为10  2  -2。

A.正确 B.错误
10.

在Python中定义函数时不需要声明函数的返回值类型。

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