#386. 202312中国电子学会Python编程等级测试四级(客观题)

202312中国电子学会Python编程等级测试四级(客观题)

选择题

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

{{ select(1) }}

  • 将问题分解成的子问题具有相同的模式。
  • 将问题分解出的各个子问题相互之间有公共子问题。
  • 当问题足够小时,可以直接求解。
  • 可以将子问题的求解结果合并成原问题的解。

  1. 斐波那契数列前n项是1,1,2,3,5,8,13...... 补全下面程序代码,求第n项斐波那契数列的值。
def fib(n):
       if ______:
           return 1
       else:
           return fib(n-1) + fib(n-2)

{{ select(2) }}

  • n == 2
  • n < 2
  • n == 3
  • n < 3

  1. 用分治法求两个数的最大公约数,代码和运行结果如下,请选择合适的代码完成程序?( )
def fun(m, n):
       if m % n == 0:
           return n
       else:
           return __________
   print(fun(98, 56))

程序运行结果如下:
14

{{ select(3) }}

  • fun(n, m-n)
  • fun(n, m%n)
  • fun(m, m-n)
  • fun(m, m%n)

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

{{ select(4) }}

  • pip install <第三方库名>
  • pip download<第三方库名>
  • pip show<第三方库名>
  • pip list<第三方库名>

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

{{ select(5) }}

  • import math
    math.sqrt(x)
    
  • from math import sqrt as t
    t(x)
    
  • import math as m
    m.sqrt(x)
    
  • import math
    sqrt(x)
    

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

{{ select(6) }}

  • 0—999
  • 0—1000
  • 100—800
  • 107—800

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

{{ select(7) }}

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

  1. 当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))

{{ select(8) }}

  • 5
  • 8
  • 11
  • 13

  1. 下列程序中,当n=4时,返回结果为?( )
def x(n):
          if  n==1:
                 return 1
          else:
                 return n+x(n-1)

{{ select(9) }}

  • 12
  • 11
  • 10
  • 9

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

{{ select(10) }}

  • 递归函数一定包含条件控制语句
  • 递归算法体现了大事化小的思想
  • 递归效率不高,递归层次过多会导致栈溢出
  • 递归算法代码简洁,效率较高

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

{{ select(11) }}

  • 2
  • 8
  • 16
  • 32

  1. 下面函数实现的功能是?( )
def   mi(x, n):
    if   n == 0:
        return  1
    else:
        return  x*mi(x, n-1)

{{ select(12) }}

  • 计算x的n次方
  • 计算n的x次方
  • 计算x!*n
  • 计算x*n!

def afun(n):
    s=1
    for i in range(1,n+1):
         s*=i
    return s
对以上代码解释错误的是?( )

{{ select(13) }}

  • 程序正常运行时,afun(n)函数的作用是求n的阶乘
  • 程序正常运行时,afun(n)函数的作用是求n+1的阶乘
  • s是局部变量
  • range()函数是Python内置函数

  1. 关于下列代码解释错误的一项是?( )
def ZhongYao(a:str,b:int)->str:
        word=a*b
        print('重要的事情说{}遍:{}'.format(b,word))
        return ZhongYao
ZhongYao('学习','3')

{{ select(14) }}

  • 参数a的数据类型必须是字符串
  • 参数b的数据类型必须是整型
  • 函数指定了返回值的数据类型是字符串
  • 程序正常运行,输出结果是: 重要的事情说3遍:学习学习学习

  1. 下列代码的运行结果是?( )
def exchange(a,b):
        a,b=b,a
        print(a,b)
    a,b=3,5
exchange(a,b)
print(a,b)

{{ select(15) }}

  • 5 3 5 3
  • 3 5 3 5
  • 5 3 3 5
  • 5 3 3 5

  1. 下列代码的运行结果是?( )
 def car_show(cars):
        for car in cars:
            print('good',car)
car_show(['BYD','Haval','Wuling'])

{{ select(16) }}

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

  1. 函数中定义了4个参数,其中2个参数都指定了默认值,见下面代码,那么在调用函数时参数个数最少是?( )
def SiBianXing(a,b,c=5,d=8):
        ZhouChang=a+b+c+d
        return ZhouChang
SiBianXing( ? )

{{ select(17) }}

  • 0
  • 2
  • 1
  • 3

  1. 执行如下程序,以下选项中哪一项是错误的?( )
def f(a,b): 
        c=a+b*2
        b=a
        return c 
a=1 
b=2
c=f(a,b)+b

{{ select(18) }}

  • 该函数名称为f
  • 执行该程序后,变量a的值为1
  • 执行该程序后,变量b的值为2
  • 执行该程序后,变量c的值为6

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

{{ select(19) }}

  • 复杂的功能块
  • 难以看懂的功能块
  • 有性能要求的功能块
  • 会多次用到的功能块

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

{{ select(20) }}

  • 传入的实参个数比形参个数多
  • 部分形参赋以默认值
  • 函数调用时,重新给赋予了默认值的形参传入新值
  • 部分实参以关键字赋值的方式去调用函数

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

{{ select(21) }}

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

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

{{ select(22) }}

  • 实参
  • 位置参数
  • 关键字参数
  • 不定长参数

  1. 对于如下自定义的函数:

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

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

{{ select(23) }}

  • myfunc(1,2)
  • myfunc(a=3,2,1)
  • myfunc(3,b=2,1)
  • myfunc(3,2,c=1)

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

{{ select(24) }}

  • 使用*args代表列表,使用**kwargs代表元组
  • 可以在调用函数时传入多个实参
  • 使用*args代表元组,使用**kwargs代表列表
  • 使用*args代表字典,使用**kwargs代表列表

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

{{ select(25) }}

  • 定义函数时,可以为某形参设定默认值
  • 如果为某形参设定了默认值,则在调用函数时就不能再为该形参传入新值
  • 如果为某形参设定了默认值,在调用函数时还可以为该形参再传入新值
  • 关键字形参就是一种为参数设置默认值的方式

判断题

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

{{ select(26) }}

  • 正确
  • 错误

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

{{ select(27) }}

  • 正确
  • 错误

  1. 运行以下代码的时间复杂度为O(n2)。( )
    k=0
    n=11
    for i in range(n):
        k=k+1
    for j in range(n):
        k=k+2
    print(k)
    

{{ select(28) }}

  • 正确
  • 错误

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

{{ select(29) }}

  • 正确
  • 错误

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

{{ select(30) }}

  • 正确
  • 错误

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

{{ select(31) }}

  • 正确
  • 错误

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

{{ select(32) }}

  • 正确
  • 错误

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

{{ select(33) }}

  • 正确
  • 错误

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

{{ select(34) }}

  • 正确
  • 错误

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

{{ select(35) }}

  • 正确
  • 错误