#84. GESP Python 二级 2025年03月 客观题

GESP Python 二级 2025年03月 客观题

2025年GESP 3月 二级

一、单选题(每题2分,共30分)

  1. 2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。

{{ select(1) }}

  • 《哪吒2》是一款新型操作系统
  • DeepSeek是深海钻探软件
  • 《哪吒2》可以生成新的软件
  • DeepSeek可以根据《哪吒2》的场景生成剧情脚本
  1. 对整型变量N,如果它能够同时被3和5整出,则输出N是含有至少两个质因数。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。

{{ select(2) }}

  • 圆形框
  • 椭圆形框
  • 平行四边形框
  • 菱形框
  1. Python语句print(3+3**(2-2)*3)执行后输出的值是( )。

{{ select(3) }}

  • 11
  • 6
  • 4
  • 3
  1. 下面Python代码执行,其输出是( )。
a, b = 3, 4
a, b = b, a
print(a, b)

{{ select(4) }}

  • 3 4
  • 3 3
  • 4 4
  • 4 3
  1. 求三色彩球的颜色。有数量无限的红(Red)绿(Green)蓝(Blue)三种彩球排成一行,每组先为5个红色球,随后3个绿色,最后为2个蓝色。每个球都有编号,从左到右依次为1,2,3……。输入整数代表编号,求该编号球的颜色。下面是Python代码的实现,正确说法是( )。
N = int(input())
remainder = N % 10  # remainder变量保存余数
if 1 <= remainder <= 5:
    print("Red")
elif 6 <= remainder <= 8:
    print("Green")
elif remainder == 9 or remainder == 0:
    print("Blue")

{{ select(5) }}

  • elif remainder == 9 or remainder == 0: 修改为else 效果相同
  • if 1 <= remainder <= 5: 修改为if remainder <= 5: 效果相同
  • elif 6 <= remainder <= 8: 写法错误,应修改为elif 6 <= remainder and remainder <= 8:
  • 根据题意remainder = N % 10 应修改为remainder = N // 10
  1. 下面Python代码执行后其输出是( )。
tnt = 0
for i in range(10):
    if i % 3:
        tnt += 1
    else:
        tnt += 2
print(tnt)

{{ select(6) }}

  • 18
  • 17
  • 16
  • 14
  1. 下面Python代码执行后输出是( )。
for i in range(10, 0, -2):
    print(i)
    break

{{ select(7) }}

  • 10
  • 8
  • 0
  • 因为循环执行时会执行break语句而终止循环,因此i的值不确定
  1. 下面Python代码执行后输出是( )。
for i in range(10):
    if i % 3 == 0:
        continue
    print("0", end = "#")
else:
    print("1",end = "#")

{{ select(8) }}

  • 0#0#0#0#0#0#
  • 0#0#0#0#0#0#0#1#
  • 0#0#0#0#1#
  • 0#0#0#0#0#0#1#
  1. 下面Python代码执行后的输出是( )。
for i in range(5):
    for j in range(i, 0, -1):
        print(j, end="-")

{{ select(9) }}

  • 1-2-1-3-2-1-4-3-2-1
  • 1-2-1-3-2-1-4-3-2-1
  • 0-0-1-0-1-2-0-1-2-3
  • 0-0-1-0-1-2-0-1-2-3
  1. 下面Python代码用于输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。
for i in range(100):
    if :
        print(i)

{{ select(10) }}

  • i % 2 == 0 and i % 7 == 2
  • not(i % 2) and i % 7 == 2
  • not(i % 2) and not(i % 7)
  • i % 2 != 1 and i % 7 == 2
  1. 下面Python代码用于求正整数1到N之间含有3的数的个数,横线处应填入代码先后是( )。
cnt = 0
N = int(input("请输入正整数:"))
for i in range(1, N):
    temp = i
    while temp != 0:
        if temp % 10 == 3:
            cnt += 1
            
            break
        else:
            temp = 
print(cnt)

{{ select(11) }}

  • continue;i = i // 10
  • break;i //= 10
  • continue;i %= 10
  • break;i %= 10
  1. 下面Python代码用于实现九九乘法表,代码中{i*j}与等号之间有一个空格。代码执行后效果是( ) 。
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j}*{i}= {i*j}", end=" ")
    print()

{{ select(12) }}

  • 选项A对应的格式
  • 选项B对应的格式
  • 选项C对应的格式
  • 选项D对应的格式
  1. 在数学中N!表示N的阶乘,即1到N的乘积,如3! = 123,且0! = 1。下面的两段Python代码用于求1-N的阶乘之和,如N为3,则是1!+2!+3!。选项中的说法,正确的是( )。
# 实现1
tnt, last = 0, 1
N = int(input())
for i in range(1, N + 1):
    last *= i
    tnt += last
print(tnt)

# 实现2
N = int(input())
tnt = 0
for i in range(1, N + 1):
    tmp = 1
    for j in range(1, i + 1):
        tmp *= j
    tnt += tmp
print(tnt)

{{ select(13) }}

  • 虽然实现1的代码短小,但效率并不高
  • 实现2的代码效率更高,且更易于理解
  • 实现1因为应用了前项计算结果,计算量更小,因此效率高
  • 两种实现,效率几乎一致
  1. 哥德巴赫猜想是指大于2的偶数都可以分解为两个质数之和,下面的代码用于验证4-1000之内的偶数能否分解为两个质数之和。下面Python代码中假设isPrime()是已经定义好用于判断正整数N是否为质数。对该段代码,错误的说法是( )。
for i in range(4, 1000, 2):
    for j in range(2, i):
        if isPrime(j) and isPrime(i - j):
            print(f"{i}={j}+{i - j}")
            break

{{ select(14) }}

  • 将代码isPrime(j) and isPrime(i-j) 修改为isPrime(j) == True and isPrime(i-j) == True 效果相同
  • 代码执行后,输出的一对质数,一定是小的数在前
  • 即便将range(4,1000,2)中的1000修改为很大的整数,也不能说从数学上证明了哥德巴赫猜想
  • 根据题意,break语句应该与if对齐
  1. 下面Python代码实现输出如下图形,相关说法正确的是( )。
请输入层数:10
1
2 3
4 5 6
7 8 9 1
2 3 4 5 6
7 8 9 1 2 3
4 5 6 7 8 9 1
2 3 4 5 6 7 8 9
2 3 4 5 6 7 8
N = int(input("请输入层数:"))
last = 1
for i in range(1, N):
    for j in range(1, i + 1):
        if last > 9:
            last = 1
        print(last, end = " ")
        last += 1
    print()

{{ select(15) }}

  • 最后一行的print()有错,应该修改为print(""),print()函数不能没有参数
  • last += 1修改为last = last + 1执行效果相同
  • 代码中的range(1, i + 1)应修改为range(1, i)
  • 外层for循环前的last = 1修改为last = 0执行效果相同

二、判断题(每题2分,共20分)

  1. C++、Python都是高级编程语言,它们每条语句的执行最终都要通过机器指令来完成。( )

{{ select(16) }}

  • 正确
  • 错误
  1. 在Python代码中,假设N为正整数,则N - N // 10 * 10N % 10都将获得N的个位数。( )

{{ select(17) }}

  • 正确
  • 错误
  1. 在Python语句print(10 <= N <= 12)中,假设N为12,则其输出为True。原因是执行10 <= N后其值为True,True与12相比仍然是True。( )

{{ select(18) }}

  • 正确
  • 错误
  1. Python表达式N ** 0.5 ** 2 == N中的N如果为正整数,则表达式的值为True,相当于开平方后平方是本身。( )

{{ select(19) }}

  • 正确
  • 错误
  1. 下面Python执行后将输出3*2=6。( )
a, b = 2, 3
a, b = b, a
print(f"{a}*{b}={a*b}")

{{ select(20) }}

  • 正确
  • 错误
  1. 下面Python代码执行后将输出10。( )
for i in range(10):
    print(i)
    continue

{{ select(21) }}

  • 正确
  • 错误
  1. 下面Python代码执行后将输出1。( )
for i in range(1, 10):
    break
    continue
    print(i)

{{ select(22) }}

  • 正确
  • 错误
  1. 下面的Python代码执行后将输出10行“OK”。( )
for i in range(5):
    for j in range(i):
        print("OK")

{{ select(23) }}

  • 正确
  • 错误
  1. 将下面Python代码中的range(1, 5)调整为range(5)输出结果相同。( )
tnt = 0
for i in range(1, 5):
    tnt += i
print(tnt)

{{ select(24) }}

  • 正确
  • 错误
  1. 下面Python代码执行后将输出0123。( )
for i in range(5):
    for i in range(i):
        continue
    print(i, end="")

{{ select(25) }}

  • 正确
  • 错误