2022年6月青少年软件编程(Python)等级考试试卷及答案解析(四级)

梁老师
梁老师 北京小升初老师~

0 人点赞了该文章 · 68 浏览





一、单选题(共25题,共50分)

1.有如下Python程序,包含lambda函数,运行该程序后,输出的结果是?( )

g = lambda x,y:x*y

print(g(2,3))

A. 2

B. 3

C. 6

D. 8


试题编号:20220428-fcl-001

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:g = lambda x,y:x*y,lambda函数返回参数x和y的积,因此选C。


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

def dtox(x,base = 2):

    s = []

    while x>0:

        s.append(x % base)

        x = x // base

    return s

print(dtox(11))

A. 程序出错

B. 1101

C. [1, 1, 0, 1]

D. [1, 0, 1, 1]


试题编号:20220428-fcl-002

试题类型:单选题

标准答案:见文末

试题难度:较难

试题解析:函数dtox有一个位置参数x,一个默认值参数base,默认值是2,本函数的功能是将参数x转换成base进制,保存列表s返回。本程序将参数11转换成二进制后的结果,因此选C。


3.下列哪项不是函数的优点?( )

A. 提高代码的复用率。

B. 使得程序简洁,程序功能清晰。

C. 便于程序的修改,便于扩展。

D. 代码运行速度更快。


试题编号:20220428-fcl-006

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:函数的使用不一定使得代码运行速度更快,其它3项是函数的优点。


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

A. 函数内的语句不会改变任何非全局变量的值。

B. 传入函数的参数都会以副本的形式存在函数中。

C. 函数的名称不能与Python的保留字相同。

D. 每个函数必须有一个return语句。


试题编号:20220428-fcl-008

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:函数的名称不能与Python的保留字相同,其他均错误。


5.Python中自定义函数的关键字是?( )

A. sub

B. def

C. function

D. void


试题编号:20220428-fcl-010

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:Python中自定义函数使用def关键字,因此选B。


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

def nxs(x):

    s = 0

    while x:

        s = s * 10 + x % 10

        x //= 10

    return s

print(nxs(106))

A. 106

B. 610

C. 160

D. 601


试题编号:20220428-fcl-016

试题类型:单选题

标准答案:见文末

试题难度:较难

试题解析:自定义函数nxs功能将参数x各位数字逆序拼接成新的整数,即将106,拼接成(6*10+0)*10+1,即601,选D。


7.Python编写的自定义函数dy,执行该程序段后,输出的结果是?( )

def dy(x,y):

    return x>y

print(dy(10,20))

A. 10

B. 20

C. False

D. True


试题编号:20220428-fcl-019

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:自定义函数dy功能是判断x与y的大小,并返回对应的逻辑值,本题中x=10,y=20;因此函数的返回值是False。选C。


8.在函数中有一种叫空函数。 构造一个空函数,下面的横线处应填?( )

def  函数名( ):

    ______________

A. None

B. return None

C. pass

D. empty


试题编号:20220501-tr-011

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:pass 是一种空操作,解释器执行到它的时候,除了检查语法是否合法,什么也不做就直接跳过。


9.下列代码的输出结果是?( )

def fun(a,b):

    t = a

    a = b

    b = t

    print(a, b)

fun(pow(3,2),pow(2,3))   #pow(x,y)返回x**y的值

A. 3 2

B. 8 9

C. 2 3

D. 9 8


试题编号:20220501-tr-012

试题类型:单选题

标准答案:见文末

试题难度:一般

试题解析:该函数作用,交换两个参数位置,再输出。


10.函数中用return [表达式] 结束函数,选择性地返回一个值给调用方,有时不带表达式的return相当于返回?( )

A. 0

B. None

C. 1

D. False


试题编号:20220501-tr-013

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:不带表达式的return,相当于返回None。


11.对于下面的函数:

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

    print(x+y+z)

用f(1,2,3)和f(1,2)两个调用语句,运行结果分别是?( )

A. 都是5

B. 6和5

C. 都是6

D. 5和6


试题编号:20220501-tr-014

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:Python函数中位置参数和关键字参数。


12.下列这段程序的打印结果是?( )

def demo(item,lis=[]):

    lis=[]

    lis.append(item)

    return lis

print(demo('a'),end='')

print(demo('b'))

A. ['a']['a', 'b']

B. ['a']['b']

C. [][]

D. [ ]['b']


试题编号:20220501-tr-015

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:函数调用。


13.函数如下:

def showNumber(numbers):

    for n in numbers:

        print(n)

下面哪个选项在调用该函数时会报错?( )

A. showNumber([2,4,5])

B. showNumber('abcesf’)

C. showNumber(3.4)

D. showNumber((12,4,5))


试题编号:20220501-tr-016

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:3.4是浮点数,不是序列对象。


14.下列关键字中,用来导入第三方库的是?( )

A. include

B. from

C. import

D. continue


试题编号:20220501-zwy-006

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:import用来导入第三方库。


15.以下选项中,不属于第三方库安装工具pip能够实现的功能是?( )

A. 安装一个第三方库。

B. 卸载已经安装的第三方库。

C. 修改已经安装的第三方库。

D. 查询已经安装的第三方库。


试题编号:20220501-zwy-013

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:pip可以安装、卸载、查询第三方库。


16.关于评价算法的优劣,以下说法正确的是?( )

A. 只要考虑是否得出正确答案。

B. 只要考虑算法的执行时间。

C. 只要考虑算法所占用的空间。

D. 从算法执行时间和需占用的空间两方面考虑。


试题编号:20220501-zwy-021

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:评价算法的指标主要有时间复杂度和空间复杂度。


17.下列程序实现求菲波那契数列第4项的值:

def f(n):

    if n==1 or n==2:

        return 1

    elif n>2:

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

    else:

        return -1

print(f(4))

请问:这种解决方法属于哪种算法?( )

A. 归纳

B. 列举

C. 递推

D. 递归

试题编号:20220503-cj-009

试题类型:单选题

标准答案:见文末

试题难度:一般

试题解析:显然是典型的递归算法。


18.著名的菲波那契数列为1,1,2,3,5,8,……。即除开始的两项为1外,其余每一项均为前两项之和。

下面的程序实现计算该数列的第4项值的大小。

n,a,b=4,1,1

if n==1:

    print("第%d个数为%d。"%_____(1)______)

if n==2:

    print("第%d个数为%d。"%(n,b))

if n>2:

    for i in range(2,n):

        result=a+b

        a,b=b,result

print("第%d个数为%d。"%(n,result))

请问:横线(1)所在位置不适合填入以下哪个选项?( )

A. (n,1)

B. (n,a)

C. (n,b)

D. (a,n)


试题编号:20220503-cj-010

试题类型:单选题

标准答案:见文末

试题难度:较难

试题解析:当n=1时,a,b都是1,因此,此时使用(n,1),(n,a),(n,b)这几项都是一样的。


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

def f(n):

    if n==1:

        return 1

    else:

        return f(n-1)+(n-1)*f(n-1)

print(f(4))

A. 64

B. 24

C. 4

D. 16


试题编号:20220505-cj-006

试题类型:单选题

标准答案:见文末

试题难度:一般

试题解析:f(4)

=f(3)+3f(3)

=4(f(3))

=4(f(2)+2f(2))

=12(f(2))

=12(f(1)+f(1))

=12*2

=24


20.已知Pell数列定义如下:

图片

第5项的值是?( )

A. 29

B. 30

C. 12

D. 32


试题编号:20220506-cj-005

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:数列为1,2,5,12,29,……


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

def Pell(n):

    if n==1:

        return 1

    if n==2:

        return 2

    if n>=3:

        return 2*Pell(n-1)+Pell(n-2)

print(Pell(4))

A. 12

B. 4

C. 3

D. 24


试题编号:20220506-cj-006

试题类型:单选题

标准答案:见文末

试题难度:一般

试题解析:按照程序逻辑为12。


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

def f(n):

    if n==1 or n==2:

        return 1

    elif n>2:

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

    else:

        return -1

print(f(-2))

A. -2

B. -1

C. 出错

D. 1


试题编号:20220506-cj-007

试题类型:单选题

标准答案:见文末

试题难度:一般

试题解析:根据程序逻辑返回-1。


23.在1-20之间玩猜数字的游戏时,如果采用二分法的策略,并且给‘大了’或‘小了’的提示,最差的情况下多少次就可以猜中?( )

A. 5

B. 10

C. 15

D. 20

试题编号:20220516-cqf-27

试题类型:单选题

标准答案:见文末

试题难度:一般

试题解析:最多5次就可以确定一个整数。


24.下列选项中,哪一项不是分治算法的特征?( )

A. 问题的规模缩小到一定程度就可以容易解决。

B. 该问题分解出的子问题的解可以合并为该问题的解。

C. 各个子问题必须分解到不能分解为止。

D. 该问题具有最优子结构性质。


试题编号:20220516-cqf-28

试题类型:单选题

标准答案:见文末

试题难度:容易

试题解析:子问题分解到什么程度需要视具体问题而定,并不一定要分解到不能分解为止。其余三个选项都是分治算法的特征。


25.下列排序算法中利用了分治算法思想的是?( )

A. 冒泡排序

B. 插入排序

C. 选择排序

D. 快速排序


试题编号:20220516-cqf-29

试题类型:单选题

标准答案:见文末

试题难度:一般

试题解析:快速排序利用了分治算法思想。


二、判断题(共10题,共20分)

26.Python中自定义函数的代码需要写在调用该函数之前。( )

正确    错误

 

试题编号:20220428-fcl-026

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:Python中自定义函数的代码需要写在调用该函数之前。


27.Python定义函数时,可选参数必须写在非可选参数后面。( )

正确    错误 


试题编号:20220428-fcl-028

试题类型:判断题

标准答案:见文末

试题难度:一般

试题解析:Python定义函数时,可选参数必须写在非可选参数后面。


28.Python中编写函数时,必须指明该函数的返回值。( )

正确    错误 


试题编号:20220428-fcl-035

试题类型:判断题

标准答案:见文末

试题难度:一般

试题解析:Python中编写函数时,不一定需要指明该函数的返回值。


29.用户自定义函数是用户自己写的一段程序,一般包括函数名、参数、返回值、函数体等四部分。其中,函数名和参数是必不可少的部分。( )

正确    错误 


试题编号:20220501-tr-017

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:


30.自定义函数def块中的代码不是主程序的一部分,运行会跳过该段代码。( )

正确    错误 


试题编号:20220501-tr-018

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:def块中的代码并不是主程序的一部分,程序运行时会跳过这一部分,从def块以外的第一行代码开始运行。


31.算法优化主要是为了减少冗余数据,优化时间复杂度和空间复杂度。( )

正确     错误 


试题编号:20220501-zwy-033

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:算法优化包括时间和空间两个方面的优化。


32.在Python中使用爬虫技术抓取网站信息需要用到第三方库。( )

正确    错误 

试题编号:20220501-zwy-035

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:Python的基本库不支持网络爬虫。


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

正确    错误 

试题编号:20220503-cj-011

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:递推关系是递归的重要组成。


34.递归算法跟递推算法是一样的,都在重复调用。( )

正确   错误 


试题编号:20220506-cj-002

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:二者不同。


35.使用分治算法解决问题的一般步骤是分解、求解、合并。( )

正确   错误 


试题编号:20220516-cqf-30

试题类型:判断题

标准答案:见文末

试题难度:容易

试题解析:参见分治算法的定义。


三、编程题(共3题,共30分)

36.字符加密。将大写字母逐个按其ASCII值转换为7位二进制数,并在最左边补0,使得每个字母转换为8位二进制数,然后将8位二进制数每四位转为十六进制数。如明文是"CIE",加密后的密文是"434945"。编写的python程序如下,完善划线处的代码。 

def xtob(n): #将整数转为二进制数 

    if n <= 1: 

        return str(n) 

    return  xtob(n//2)+  ①   

mingwen = "CIE" 

he = '0123456789ABCDEF' 

rst = '' 

for c in mingwen:

   s = "0" + xtob(ord(c)) #将明文转为8位二进制数 

   i = 0 

   data = 0

   while i < 8:

      data =data * 2 +  ②  

      if (i + 1) % 4 == 0: 

          rst = rst + he[data] 

          data = 0 

         ③   

print('密文是:',rst)


试题编号:20220428-fcl-036

试题类型:编程题

标准答案:见文末

试题难度:一般

试题解析:


37.辗转相除法求最大公约数,下列函数是用递归算法实现的,请完善横线处的代码。

def gcd(a,b):

    m=a%b

    if m==0:

        return      ①     

    else:

        a=b

            ②      

        return       ③     

print(gcd(12,18)) 


试题编号:20220501-tr-037

试题类型:编程题

标准答案:见文末

试题难度:容易

试题解析:


38.下面的程序运用分治算法寻找列表中的最大值。请将空格补全代码。

#子问题规模小于或等于2时

def zui_da_zhi(a_list):

    if   ①   :

        if a_list[0]>=a_list[1]:

            most=a_list[0]

        else:

            most=a_list[1]

    else:

        most=a_list[0]

    return most

# 分治算法排序

def fen_zhi(init_list):

    n=len(init_list)

    if n<=2:                  #若问题规模小于或等于2,解决

        return zui_da_zhi(init_list)

    #分解(子问题规模为n/2)

    left_list,right_list=   ②   

    #递归,分治

    left_max,right_max=   ③   

    #合并

    return zui_da_zhi([left_max,right_max])


#测试数据

test_data=[12,25,4,47,69,5,4,6,37,89,21]

print('最大值为:',fen_zhi(test_data))


试题编号:20220516-cqf-37

试题类型:编程题

标准答案:见文末

试题难度:较难

试题解析:


图片


添加 家长论坛微信 



发布于 2024-04-24 22:30

免责声明:

本文由 梁老师 原创发布于 家长帮 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

广告
All Rights Reserved Powered BY WeCenter V4.1.0 © 2025 京ICP备20005761号-2