#116. CIE Python 四级 2024年12月 客观题

CIE Python 四级 2024年12月 客观题

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

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

{{ select(1) }}

  • 位置实参和关键字实参可以混用
  • 形参不占用内存地址
  • 调用函数时,如给函数提供了实参,则优先使用实参,同时更改形参的默认值,便于下次调用
  • 形参设定默认值,是为了简化函数的调用
  1. Python中,无需导入math库,可以直接使用的函数是?( )

{{ select(2) }}

  • ceil()
  • floor()
  • round()
  • sqrt()
  1. 如下代码,运行之后,最终打印结果是?( )
def P(a,b=3):
    a=2
    return a*b
print(P(3,4))

{{ select(3) }}

  • 6
  • 8
  • 4
  • 12
  1. 调用以下自定义函数时,将实参与形参进行关联,方式错误的是?( )
def f(a,b,c):
    print(a,b,c)

{{ select(4) }}

  • f(1,2,3)
  • f(b=2,a=1,c=3)
  • f(1,b=2,3)
  • f(1,2,c=3)
  1. 以下选项中,关于python函数参数的说法正确的是?( )

{{ select(5) }}

  • 定义函数时不能省略参数
  • 在调用函数之前,需对函数进行定义
  • 可以给函数形参设置默认值,当函数调用时给定实参新的数值时,函数将使用默认值
  • 函数中允许位置实参和关键字实参混用,没有先后顺序
  1. 关于计算圆锥体积的匿名函数的定义和使用,以下哪一个语法格式是正确的?( )

{{ select(6) }}

  • lambda r,h:3.14*r*r*h/3 
    print(lambda(5,10))
    
  • lambda r,h=9,3.14*r*r*h/3 
    print(lambda(5))
    
  • V=lambda r,h=9:3.14*r*r*h/3 
    print(V(5,10))
    
  • V=lambda r,h=9,3.14*r*r*h/3 
    print(V(5))
    
  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

{{ select(7) }}

  • O(n)O(n)
  • O(nlogn)O(nlogn)
  • O(n2)O(n^2)
  • O(n3)O(n^3)
  1. 下列哪个命令能显示电脑上已安装的Python库?( )

{{ select(8) }}

  • pip list
  • pip dir
  • pip print
  • pip config
  1. Python中导入math模块中的sqrt(x)函数,下列程序段错误的是?( )

{{ select(9) }}

  • import math
    math.sqrt(x)
    
  • from math import sqrt as sq
    sq(x)
    
  • import math as m
    m.sqrt(x)
    
  • import math
    sqrt(x)
    
  1. 有如下Python程序,执行该程序后输出的结果是?( )
def jc(a):
    if a ==1 :
        return 1
    else:
        return a * jc(a-1)
print(jc(jc(3)))

{{ select(10) }}

  • 3
  • 6
  • 120
  • 720
  1. 下列程序用递推的方法求数列的值,执行该程序后输出结果是?( )
def fib(n):
    a=b=1
    for i in range(3,n+1):
        c=a+b
        a=b
        b=c
        print(c)
fib(7)

{{ select(11) }}

  • 21
  • 13
  • 8
  • 5
  1. 阅读下列程序,运行结果正确的是?( )
def f(x):
    if x==1:
        return 0
    else:
        return (x*x-1)+f(x-1)
print(f(3))

{{ select(12) }}

  • 10
  • 11
  • 12
  • 13
  1. 下列关于递推算法思想的描述正确的是?( )

{{ select(13) }}

  • 将一个大问题分解为若干子问题,且子问题与大问题是相同的问题,构成递推算法思想
  • 递推算法思想需要有明确的终止条件
  • 递推算法思想需要有明确的递推公式
  • 任何问题都可以用递推算法解决
  1. 某农户养了若干只鸡。第一天卖掉其中一半加一只,以后每天都卖掉剩下的一半加一只。到第8天的时候发现只剩一只鸡了。请问该农户一开始有多少只鸡? 这个问题用下列什么算法解决?( )

{{ select(14) }}

  • 递推
  • 解析
  • 枚举
  • 分治
  1. 以下关于global关键字表述正确的是?( )

{{ select(15) }}

  • global关键字只能在程序最开始初定义
  • global关键字只能在变量使用前定义
  • global关键字通过局部变量修改全局变量的值
  • global关键字通过全局变量修改局部变量的值
  1. 运行下列代码,输出结果为?( )
def fun(x, y, z):
    print(z, x)
fun(1, 2, 3)

{{ select(16) }}

  • 1 2
  • 3 2
  • 3 1
  • 1 3
  1. 以下是比较两个数的大小的函数,输出结果为?( )
def fun(a, b, c):
    if a > b:
        c = a
    else:
        c = b
print(fun(1, 2, 3))

{{ select(17) }}

  • 1
  • 2
  • 3
  • None
  1. 小明的妈妈在超市里买了一些商品,商品的价格放在列表里,现在超市对商品进行打折处理,请运行如下代码输出结果?( )
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))

{{ select(18) }}

  • 390.0
  • 280.0
  • 260.0
  • 150.0
  1. 运行以下代码,请输出结果?( )
def fun(n):
    s = 0
    for i in range(n):
        s += i
    return s
print(fun(10))

{{ select(19) }}

  • 55
  • 45
  • 50
  • 60
  1. 运行以下代码,请输出结果?( )
def fun(x):
    return x * x
print(fun(fun(fun(2))))

{{ select(20) }}

  • 16
  • 32
  • 128
  • 256
  1. 运行以下代码,请输出结果?( )
x = 0
def fun():
    global x
    x += 10
print(x)
fun()
print(x)

{{ select(21) }}

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

{{ select(22) }}

  • fun(n-4) * 4
  • fun(n-1) * 4
  • fun(n-1) * 2
  • fun(n-2) * 2
  1. 下面关于递归函数的说法,正确的是?( )

{{ select(23) }}

  • 一般来说,递归函数的执行效率高于非递归函数
  • 递归算法一般代码简洁,执行效率高,空间复杂度低
  • 递归函数必须明确嵌套调用的次数
  • 递归函数必须有明确的边界终止条件
  1. 现有24颗药丸,重量都是0.1g,其中一颗药丸不小心被污染了,外观没有变化,但是重量变重了。如果有一架天平,最多只能称重四次,要把这个被污染的药丸找出来。这个问题可以用下列哪种算法思想解决?( )

{{ select(24) }}

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

{{ select(25) }}

  • 7
  • 8
  • 9
  • 10

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

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

{{ select(26) }}

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

{{ select(27) }}

  • 正确
  • 错误
  1. 定义函数或过程时,如果函数在内部调用函数本身,这个函数就是递归函数。( )

{{ select(28) }}

  • 正确
  • 错误
  1. 求斐波那契数列第n项可以用递归思想解决,也可以用递推思想解决。( )

{{ select(29) }}

  • 正确
  • 错误
  1. 安装Python第三方库只能使用pip命令。( )

{{ select(30) }}

  • 正确
  • 错误
  1. 运行如下代码:
fun = lambda x, y = 10 : y - x
print(fun(5, 8))

运行结果为:5。( )

{{ select(31) }}

  • 正确
  • 错误
  1. Python3.5之后的版本新增了对函数参数和返回值的类型指定和检查,新建变量时也可以指定类型。以下代码,只能接受str类型的参数,否则就会报错。( )
def say(name:str, greet:str)->str:
    return name + greet
print(say("小明", "你好!"))

{{ select(32) }}

  • 正确
  • 错误
  1. 运行如下代码,输出结果为5。( )
x = 1
y = 5
def fun():
    global x
    x = 4
    y = 3
    if y > x:
        return y
    else:
        return x
print(fun())

{{ select(33) }}

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

{{ select(34) }}

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

{{ select(35) }}

  • 正确
  • 错误