#154. GESP Python 四级 2023年06月 客观题

GESP Python 四级 2023年06月 客观题

选择题

  1. 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。

{{ select(1) }}

  • 编辑
  • 保存
  • 调试
  • 编译
  1. 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数据中有两个相等记录的关键字R和S(R出现在S之前),在排序后的列表中R也一定在S前。下面关于排序稳定性的描述,正确的是( )。

{{ select(2) }}

  • 冒泡排序是不稳定的
  • 插入排序是不稳定的
  • 选择排序是不稳定的
  • 以上都不正确
  1. 下面代码执行后输出是( )。
a, b, c = 10, 20, 30

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

d = f(b, a)
print(a, b, c, d, sep="#")

{{ select(3) }}

  • 12#20#220#220
  • 20#10#220#220
  • 20#10#30#220
  • 10#20#30#220
  1. 下面代码执行后输出是( )。
def ADD(a):
    a = a + 10
    return a

a = 100
b = ADD(a)
print(a, b)

{{ select(4) }}

  • 100 110
  • 110 110
  • 100 100
  • 110 100
  1. 下面代码执行后输出是( )。
def ADD(a):
    a.append(10)
    return a

a = [1, 2, 3]
b = ADD(a)
print(a, b)

{{ select(5) }}

  • [1, 2, 3] [1, 2, 3]
  • [1, 2, 3, 10] [1, 2, 3, 10]
  • [1, 2, 3] [1, 2, 3, 10]
  • [1, 2, 3, 10] None
  1. 下面Python代码执行后输出是( )。
def ADD(a):
    a = a.append(10)
    return a

a = [1, 2, 3]
b = ADD(a)
print(a, b)

{{ select(6) }}

  • [1, 2, 3] [1, 2, 3]
  • [1, 2, 3, 10] [1, 2, 3, 10]
  • [1, 2, 3] [1, 2, 3, 10]
  • [1, 2, 3, 10] None
  1. 下面Python代码所定义函数AVG()的时间复杂度是( )。
def AVG(Nums):  # 分别保存求和值和成员数量
    Sum, numCount = 0, 0
    for everyNum in Nums:
        Sum += everyNum
        numCount += 1
    return Sum / numCount

{{ select(7) }}

  • O(1)O(1)
  • O(n)O(n)
  • O(n+4)O(n + 4)
  • O(n2)O(n^2)
  1. 下面Python代码的功能是在dictA中保存形如{12: [1, 2, 3, 4, 6, 12]}数据,即键为1-100中的每个数,值为其对应的因数,横线处应填入代码是( )。
dictA = {}  # 保存1-100每个数对应的因数。
for i in range(1, 100 + 1):
    for j in range(1, i + 1):
        if i % j == 0:
            dictA[i] = _______
print(dictA)

{{ select(8) }}

  • dictA.get(i, []).append(j)
  • dictA.get(i, list).append(j)
  • dictA.get(i, list()) + (j)
  • dictA.get(i, []) + [j]
  1. 下面Python代码中的dictA是1-100所有数及其对应的因数,此处仅列出其中一部分。
dictA = {1: (1,), 2: (1, 2), 3: (1, 3), 4: (1, 2, 4), 5: (1, 5), 6: (1, 2, 3, 6)}
print(f_______)

在横线处填上合适代码,实现只输出质数对应的因数( )。

{{ select(9) }}

  • {itm for itm in dictA if len(itm) > 2}
  • {K: V for K, V in dictA if len(V) > 2}
  • {K: V for K, V in dictA.items() if len(V) > 2}
  • {K: K.value for K in dictA if len(dictA[K]) > 2}
  1. 要打开一个已经存在的文件并在末尾处续写新的内容,则打开模式应该设定为( )。

{{ select(10) }}

  • w
  • w+
  • r+
  • a+
  1. 下列Python代码执行时如果输入3.14,将输出的是( )。
try:
    m = int(input())
    n = int(input())
    res = m / n
except ZeroDivisionError:
    print(1, end="#")
except:
    print(2, end="#")
else:
    print(3, end="#")
finally:
    print(4, end="#")

{{ select(11) }}

  • 2#
  • 1#4#
  • 2#4#
  • 2#3#4#
  1. 有关下面Python代码的说法正确的是( )。
m, n, *_ = map(int, input().split(","))
print(m + n)

{{ select(12) }}

  • 如果输入1.414,1.732,2.236也将被执行,输出为2
  • 如果输入1,2,3,4,5将会因输入过多而报错
  • 如果输入1,2也将会执行,输出3
  • 程序存在语法错误,原因是*_
  1. 下面Python代码程序用于复制图片文件,文件名仅为示例,文件位置假设正确,横线处分别应填入( )。
sourceFile = open("CCF.png", "_______")
sourceData = sourceFile.read()
sourceFile.close()

targetFile = open("CCF_bak.png", "_______")
targetFile.write(sourceData)
targetFile.close()

{{ select(13) }}

  • rb wb
  • r w
  • r+ w+
  • a+ a+
  1. 在下面Python代码中,lst数据如代码所示,但仅包含部分数据此处为示例。要求实现第1个按升序第2个数按降序,在横线处填上合适代码( )。
lst = [(16, 178), (16, 182), (17, 172), (15, 191), (16, 175)]
lst.sort(_______)
print(lst)

{{ select(14) }}

  • key = lambda x: (x[0], -x[1])
  • lambda x: (x[0], x[1])
  • key = lambda x: (-x[0], -x[1])
  • 不需要填入代码,按默认排序即可
  1. 有关下面Python代码的说法,正确的是( )。
def Fx(a=10, b):
    return a * b

print(Fx("1", 2))

{{ select(15) }}

  • 函数Fx()定义错误,交换ab参数的先后顺序,程序执行后将输出11
  • 上述代码执行后将输出2
  • 上述代码执行后将输出11
  • Fx()函数定义中,a被定义为整数,因此传入字符串将导致错误,因此第3行函数调用后将报错

判断题

  1. 域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,CCF编程能力等级认证官方网站的域名是gesp.ccf.org.cn,其中顶级域名是gesp。( )

{{ select(16) }}

  • 正确
  • 错误
  1. 数列1, 1, 2, 3, 5, 8...是以意大利数学家列昂纳多·斐波那契命名的数列,从第三个数开始,每个数是前面两项之和。如果计算该数列的第n项(其中(n>3))fib(n),我们采用如下方法:①令fib(1)=fib(2)=1②用循环for i=3 to n分别计算f(i)③输出fib(n)这体现了递推的编程思想。( )

{{ select(17) }}

  • 正确
  • 错误
  1. Python列表的sort()函数是稳定排序。( )

{{ select(18) }}

  • 正确
  • 错误
  1. 冒泡排序算法额外空间需求是(O(1)),即额外所需空间为常数,与排序数据的数量没有关系。( )

{{ select(19) }}

  • 正确
  • 错误
  1. {1} + {1}在Python中是合法的表达式。( )

{{ select(20) }}

  • 正确
  • 错误
  1. 下面Python代码执行后输出了文件abc.txt前10个字符,但由于没有关闭文件,可能存在风险。( )
with open("abc.txt", "r") as rdFile:
    rdData = rdFile.read()
    print(rdData[:10])

{{ select(21) }}

  • 正确
  • 错误
  1. 如下Python代码的第1行可被正常执行,该文件内容由中文英文和数字构成。程序执行后输出值与文件所占字节数相同。( )
rdFile = open("xyz.txt", "r")
print(len(rdFile.read()))
rdFile.close()

{{ select(22) }}

  • 正确
  • 错误
  1. 在Python中,文本文件不可以二进制方式读写。( )

{{ select(23) }}

  • 正确
  • 错误
  1. 在与异常处理相关的关键字中,else所属内容一定是不发生异常时才会被执行。( )

{{ select(24) }}

  • 正确
  • 错误
  1. 根据下面Python函数定义,调用Fx()函数时如果两个参数同为intfloattupleliststr都不会报错。( )
def Fx(a, b):
    return a + b

{{ select(25) }}

  • 正确
  • 错误