CCF GESP 2026年9月认证 Python 5级

所有 GESP 真题,手机上也能刷 · 自动判分 · 错题自动进错题本 扫码去刷
二 判断题
共 10 道 每题 2 分 共计 20 分
第 1 题

下面代码,在已知结点 p 的前提下,可以用 $O({1})$ 的时间,在单向链表的 p 结点后面插入新结点 s 。

s.next = p.next
p.next = s
正确
错误
第 2 题
下面代码可以安全删除单向链表的头结点,并让 head 指向删除之后的新头结点。
p = head
head = p.next
正确
错误
第 3 题
下面的欧几里得算法,只要 a 、b 是正整数,无论 a > b 还是 a < b 都可以正常求出最大公约数。
def gcd(a, b):
    while b != 0:
        r = a % b
        a = b
        b = r
    return a
正确
错误
第 4 题
下面埃氏筛从 i * i 开始标记合数,原因是:i*i 之前 i 的合数倍数,已经被更小的质因子标记完成。
def sieve(n):
    isPrime = [True] * (n + 1)
    isPrime[0] = isPrime[1] = False
    i = 2
    while i * i <= n:
        if isPrime[i]:
            j = i * i
            while j <= n:
                isPrime[j] = False
                j += i
        i += 1
    return isPrime
正确
错误
第 5 题
下面程序的时间复杂度为 $O(n)$。
i = 1
while i <= n:
    print(i)
    i *= 2
正确
错误
第 6 题

数组 a 已经升序排列,下面函数可以返回数组中最后一个小于等于 x 的元素下标;如果不存在该元素, 则返回 -1 。

def findLastLE(a, x):
    l = 0
    r = len(a) - 1
    ans = -1
    while l <= r:
        mid = l + (r - l) // 2
        if a[mid] <= x:
            ans = mid
            l = mid + 1
        else:
            r = mid - 1
    return ans
正确
错误
第 7 题
快速排序中如果选取区间第一个元素作为枢轴。当输入数组已经升序排列时,其最坏时间复杂度仍为 $O(n l o g n)$。
正确
错误
第 8 题

下面归并排序的递推式对应的时间复杂度为 $O(n l o g n)$。

$$T(n)=2T(n/2)+O(n)$$

正确
错误
第 9 题
下面的贪心代码,对于任意硬币面值集合 coins ,都一定可以求出凑出 money 所需要的最少硬币数量。
count = 0
# coins 按面值从大到小排序
for coin in coins:
    count += money // coin
    money = money % coin
正确
错误
第 10 题

假设两个非负高精度整数分别存储在数组 a 和 b 中,且 $a\ge b$。数组采用低位在前的方式存储,即 a[0] 表示个位。下面代码中的 c 可以正确保存 a - b 的各位数字。

borrow = 0
for i in range(len(a)):
    t = a[i] - b[i] + borrow
    if t < 0:
        t += 10
        borrow = 1
    else:
        borrow = 0
    c[i] = t
正确
错误
判断题部分已到底了。

小程序开心码未来

微信扫码,随时随地练 GESP 真题

  • 手机刷题 · 自动判分,错题自动归档到错题本
  • 绑定网站账号后,查看答案解析等权限自动同步
开心码未来小程序二维码(微信扫一扫) 微信扫一扫