客观题

小测

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

1级难度(基础语法)第1-5题

1. 下面有关Python变量的说法,正确的是( )。 {{ select(1) }}

  • 选项 A 不可以用 for 作为变量名,因为 for 是Python的关键字(保留字)。
  • 选项 B _tnt 不可以是变量名,因为变量名的第一个字符必须是英文字母。
  • 选项 C *tnt* 不可以是变量名,因为最后一个字符容易与减号混淆。
  • 选项 D 可以用 print 作为变量名,因为 print 是关键字,但这不是好习惯,因为 print 有约定的功能与含义。

2. Python表达式 3 * 3 ** 2 的值为( )。 {{ select(2) }}

  • 选项 A 81
  • 选项 B 27
  • 选项 C 24
  • 选项 D 18

3. 下面的Python代码执行后,其输出是( )。

a = 3
b = a = 4
print(a, b)

{{ select(3) }}

  • 选项 A 4 4
  • 选项 B 3 3
  • 选项 C 3 4
  • 选项 D 4 3

4. 下面的Python代码用于求N的所有因数,如输入12则将输出 12,6,4,3,2,1,。横线处应填入的代码是( )。

N = int(input())
i = N
while ______________:
    if N % i == 0:
        print(i, end=",")
    i -= 1
print(1)

{{ select(4) }}

  • 选项 A i <= 1
  • 选项 B i == 1
  • 选项 C i > 1
  • 选项 D i >= 1

5. 为在Python Turtle中输出正方形图形,代码横线处应填入( )。

import turtle
for i in range(4):
    turtle.circle(100, steps=______)
    turtle.right(90)

{{ select(5) }}

  • 选项 A 1
  • 选项 B 2
  • 选项 C 3
  • 选项 D 4

2级难度(流程控制与函数)第6-20题

6. 下面Python代码执行后的输出是( )。

a, b, c = 3, 4, 5
print(a ** 2 + b * b == c ** 2)

{{ select(6) }}

  • 选项 A True
  • 选项 B true
  • 选项 C 9
  • 选项 D 10

7. 有关下面Python代码的说法,正确的是( )。

N = int(input("请输入正整数:"))
if N <= 1:
    print(f"{N}不是质数")
elif N == 2:
    print(f"{N}是质数")
elif N % 2 == 0 or N % 3 == 0:
    print(f"{N}不是质数")
else:
    for i in range(2, N):
        if N % i == 0:
            print(f"{N}不是质数")
            break
    else:
        print(f"{N}是质数")

{{ select(7) }}

  • 选项 A 如果输入2,则将先输出"2是质数",然后输出"2不是质数"
  • 选项 B 删除break,对程序执行结果没有影响
  • 选项 C 每个if语句只能有一个elif子句,所以本程序有语法错误
  • 选项 D 如果输入15,程序中的循环不会被执行

8. 下面Python代码执行后,其输出是( )。

Sum = 0
for i in range(1, 10):
    Sum += i
    if i % 2:
        continue
    if i % 7:
        break
print(Sum)

{{ select(8) }}

  • 选项 A 45
  • 选项 B 28
  • 选项 C 3
  • 选项 D 0

9. 某种编号的规则是"XX-Y",其中XX从00到11,Y从0到9。第一个编号是00-0,第二个是01-1,第12个是11-1,第13个是00-2。用于生成第N个编号的代码,横线处应填上的代码是( )。

N = int(input("请输入编号位置:"))
part1 = N % ______
part2 = N % ______

{{ select(9) }}

  • 选项 A 12, 10
  • 选项 B 10, 10
  • 选项 C 11, 9
  • 选项 D 9, 9

10. 阅读下面的Python代码,正确的是( )。

a = int(input())
b = int(input())
while b != 0:
    remainder = a % b
    a = b
    b = remainder
print(a)

{{ select(10) }}

  • 选项 A b不能为0,因为a % b将导致错误
  • 选项 B a必须小于b,否则a % b将导致错误
  • 选项 C ab都必须为正整数,否则a % b将导致错误
  • 选项 D 如果a为0,则不管b为多少,输出都将是b

11. 一个无限循环小数是0.123123123……,求小数点后第N位。横线处应填入的代码是( )。

N = int(input())
remainder = ________
if remainder == 0:
    print(1)
elif remainder == 1:
    print(2)
else:
    print(3)

{{ select(11) }}

  • 选项 A N % 3
  • 选项 B (N - 1) % 3
  • 选项 C N // 3
  • 选项 D (N - 1) // 3

12. 某同学执行Python代码print(3 + 3.14)时输出6.140000000000001,其原因是( )。 {{ select(12) }}

  • 选项 A Python中整数和浮点数相加时,整数会被转换为浮点数,而某些十进制小数无法用有限位二进制精确表示,从而产生微小的舍入误差。
  • 选项 B Python的print函数在输出浮点数时有默认小数点位数
  • 选项 C 3.14是一个无限循环小数,在计算机中无法精确表示
  • 选项 D 由于计算机CPU的运算错误导致

13. 与下面Python输出效果不一致的代码是( )。

for i in range(10):
    print(i)

{{ select(13) }}

  • A

    i = 0
    while i < 10:
        print(i)
        i += 1
    
  • B

    i = 0
    while i < 10:
       i += 1
       print(i)
    
  • C

    i = 0
    while True:
        print(i)
        i += 1
        if i >= 10:
            break
    
  • D

    i = 0
    while True:
        if i >= 10:
            break
        print(i)
        i += 1
    

14. 有关下面Python代码的说法,正确的是( )。

PI = 3.1415926
print(PI)

{{ select(14) }}

  • 选项 A 为了方便初学者,print(PI)print(pi)效果相同
  • 选项 B print(PI)修改为print(Pi)能正常执行
  • 选项 C 不能用PI做变量名
  • 选项 D 将程序中PI全部改写为Pai,将能正常执行

15. 下面Python代码执行后输出是( )。

num = 0
while num <= 5:
    num += 1
    if num % 3:
        continue
    print(num, end='#')
else:
    print(num)

{{ select(15) }}

  • 选项 A 3#6#
  • 选项 B 3#6#6
  • 选项 C 1#2#3#4#5#6#
  • 选项 D 1#2#3#4#5#6#6

16. 下面Python代码用于获得正整数的第3位数(从左往右,不足3位补0)。横线处应填入的代码是( )。

N = int(input("请输入正整数:"))
print(__________)

{{ select(16) }}

  • 选项 A N % 1000 // 100
  • 选项 B N // 1000 % 100
  • 选项 C N / 1000 // 100
  • 选项 D N % 1000 / 100

17. 下面的Python代码执行之后的输出是( )。

for i in range(-2, 2):
    if i % 2:
        print(i, end="#")

{{ select(17) }}

  • 选项 A -1#1#
  • 选项 B -1#0#1#
  • 选项 C -2#-1#1#2#
  • 选项 D -2#-1#0#1#

18. 下面Python代码执行后,将输出( )。

for i in range(-2, 2):
    if i:
        print(i, end="#")

{{ select(18) }}

  • 选项 A -2#-1#1#
  • 选项 B -2#-1#0#1#
  • 选项 C -2#-1#1#2#
  • 选项 D -2#-1#0#1#2#

19. 下面Python代码用于输入姓名,然后输出姓名,正确的说法是( )。

XingMing = input("请输入您的姓名: ")
print(XingMing)

{{ select(19) }}

  • 选项 A XingMing是汉语拼音,不能作为变量名称
  • 选项 B print(XingMing)修改为print(xingming)能正常执行
  • 选项 C 可以将XingMing改为Xing-Ming
  • 选项 D 可以将XingMing改为Pai

20. 某同学执行Python代码print((0.1 + 0.2) == 0.3)时输出False,其原因是( )。 {{ select(20) }}

  • 选项 A Python的+运算符在处理小数时存在bug
  • 选项 B 0.1、0.2和0.3在计算机中无法用二进制浮点数精确表示,导致结果存在微小误差
  • 选项 C ==运算符不能用于比较浮点数
  • 选项 D 因为0.1 + 0.2的数学结果不等于0.3

3级难度(数据结构与算法)第21-35题

21. 下面选项中最大的数是?( ) {{ select(21) }}

  • 选项 A 0b1111
  • 选项 B 0o17
  • 选项 C 0xF
  • 选项 D 15

22. 执行下面Python代码后,输出的结果是?( )

a = [1, 2]
b = a.copy()
a[0] = 3
print(b)

{{ select(22) }}

  • 选项 A [3, 2]
  • 选项 B [1, 2]
  • 选项 C [1, 3]
  • 选项 D [3, 3]

23. Python表达式 [x % 3 for x in range(10) if x % 2 == 0] 的值是?( ) {{ select(23) }}

  • 选项 A [0, 1, 0, 1, 0]
  • 选项 B [0, 2, 1, 0, 2]
  • 选项 C [0, 1, 2, 0, 1]
  • 选项 D [0, 2, 4, 6, 8]

24. 已知 lst = list(range(10)),即 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。要获取切片 [8, 6, 4, 2],应该使用的切片操作是?( ) {{ select(24) }}

  • 选项 A lst[-2:2:-2]
  • 选项 B lst[8::-2]
  • 选项 C lst[8:1:-2]
  • 选项 D lst[-2:1:2]

25. 分析以下代码段,最终的输出结果是什么?( )

config = {
    'debug': True,
    'port': 8080,
    'debug': False,
    'timeout': 30
}
print(config['debug'])

{{ select(25) }}

  • 选项 A True
  • 选项 B False
  • 选项 C 程序报错
  • 选项 D { 'debug': True, 'port': 8080, 'timeout': 30}

26. 合并两个字典 d1={'a':1}d2={'b':2} 的正确方式是?( ) {{ select(26) }}

  • 选项 A d1 + d2
  • 选项 B d1.update(d2)
  • 选项 C d1.extend(d2)
  • 选项 D d1.append(d2)

27. 对于字符串 s="Hello, Python",执行 s.find("Java")s.index("Java") 的结果分别是?( ) {{ select(27) }}

  • 选项 A -1,-1
  • 选项 B 程序报错,程序报错
  • 选项 C -1,程序报错
  • 选项 D 程序报错,-1

28. 现有集合 s1={1, 2, 3}s2={3, 4, 5},表达式 (s1 - s2) | (s2 - s1) 的结果是:( ) {{ select(28) }}

  • 选项 A {1, 2}
  • 选项 B {4, 5}
  • 选项 C {3}
  • 选项 D {1, 2, 4, 5}

29. 执行下面Python代码后,输出的结果是?( )

lst = [1, 2, 3, 4]
print(lst.pop(-2))

{{ select(29) }}

  • 选项 A None
  • 选项 B 1
  • 选项 C 2
  • 选项 D 3

30. 关于字典的 .setdefault() 方法,以下说法正确的是?( ) {{ select(30) }}

  • 选项 A 如果键不存在,setdefault() 方法会返回 None 并且不会修改原字典。
  • 选项 B 如果键不存在,setdefault() 方法会将键和默认值添加到字典中,并返回默认值。
  • 选项 C 如果键存在,setdefault() 方法会更新该键的值为指定的默认值。
  • 选项 D 如果键存在,setdefault() 方法会返回默认值而不是键原有的值。

31. 已知元组 t=(1, 2, 3, 4, 5),下列哪个语句能够得到一个包含 t 中偶数的元组?( ) {{ select(31) }}

  • 选项 A result = [x for x in t if x % 2 == 0]
  • 选项 B result = tuple(x for x in t if x % 2 == 0)
  • 选项 C result = (x for x in t if x % 2 == 0)
  • 选项 D result = {x for x in t if x % 2 == 0}

32. 如何判断集合 s1 是否是 s2 的真子集?( ) {{ select(32) }}

  • 选项 A s1 < s2
  • 选项 B s1 <= s2
  • 选项 C s1.issubset(s2)
  • 选项 D s1 in s2

33. 二进制数 1101 0111 转换为十六进制是?( ) {{ select(33) }}

  • 选项 A 7C
  • 选项 B C7
  • 选项 C 7D
  • 选项 D D7

34. 将十进制2025转化成二进制,可以使用下列哪个表达式?( ) {{ select(34) }}

  • 选项 A bin(2025)
  • 选项 B oct(2025)
  • 选项 C hex(2025)
  • 选项 D int(2025, 2)

35. 执行以下代码,输出结果是什么?( )

s = "Python Programming"
print(s[7:10].upper())

{{ select(35) }}

  • 选项 A PYT
  • 选项 B HON
  • 选项 C PRO
  • 选项 D ON P

4级难度(高级特性与综合)第36-50题

36. 执行下面 Python代码后,输出的结果是? ( )

s1 = {('a', 1), ("b", 2)}
s2 = {('b', 2), ('a', 1)}
t1 = (('a', 1), ('b', 2))
t2 = (('b', 2), ('a', 1))
print(s1 == s2, t1 == t2)

{{ select(36) }}

  • 选项 A True False
  • 选项 B False False
  • 选项 C True True
  • 选项 D False True

37. 执行下面 Python代码后,输出的结果是? ( )

def func(*args):
    return sum(args) / len(args)
result = func(1, 2, 3, 4, 5)
print(result)

{{ select(37) }}

  • 选项 A 15
  • 选项 B 3
  • 选项 C 3.0
  • 选项 D 报错

38. 以下哪个函数调用是合法的?( )

def func(a, b, *, c, d=0): pass

{{ select(38) }}

  • 选项 A func(1, 2, 3, 4)
  • 选项 B func(a=1, 2, c=3)
  • 选项 C func(1, 2, 3, d=4)
  • 选项 D func(1, 2, c=3)

39. 执行下面Python代码后,输出的结果是?( )

x = 10
def func():
    x += 1
    return x
print(func())

{{ select(39) }}

  • 选项 A 10
  • 选项 B 11
  • 选项 C 报错
  • 选项 D None

40. 执行以下Python代码,若用户输入的是字母 a,输出的结果是?( )

try:
    num = int(input("请输入一个数字: "))
    result = 10 / num
    print("计算结果是:", result)
except ValueError:
    print("输入错误:请输入整数!")
except ZeroDivisionError:
    print("输入错误:除数不能为0!")

{{ select(40) }}

  • 选项 A 计算结果是: 0
  • 选项 B 输入错误:除数不能为0!
  • 选项 C 输入错误:请输入整数!
  • 选项 D 程序直接崩溃报错

41. 下面Python代码执行后输出是( )。

tnt = 0
for i in range(5):
    for j in range(i):
        tnt += 1
print(tnt, end="#")
print(tnt)

{{ select(41) }}

  • 选项 A 0#1#3#6#10#10
  • 选项 B 1#2#3#4#5#6#7#8#9#10#10
  • 选项 C 10#10
  • 选项 D 10

42. 下面4个选项中,与下述代码输出结果相同的是( )。

i = 0
while i < 5:
    print(i)
    i += 1

{{ select(42) }}

  • 选项 A

    for i in range(5):
        print(i)
    
  • 选项 B

    for i in range(1, 5):
        print(i)
    
  • 选项 C

    for i in range(6):
        print(i)
    
  • 选项 D

    for i in range(0, 6):
        print(i)
    

43. 执行以下Python代码后,输出的结果是?( )

def demo(x, y, z):
    return x + y + z

values = (1, 2, 3)
result = demo(*values)
print(result)

{{ select(43) }}

  • 选项 A 6
  • 选项 B (1, 2, 3)
  • 选项 C 报错
  • 选项 D 123

44. 下列有关函数内修改全局变量描述正确的是?( ) {{ select(44) }}

  • 选项 A 函数内部可以直接修改任何全局变量
  • 选项 B 函数内部无法修改全局变量,只能读取
  • 选项 C 需要使用 global 关键字声明后才能修改全局变量
  • 选项 D 需要使用 nonlocal 关键字声明后才能修改全局变量

45. 为了安全地打开并读取一个文件,确保即使发生异常,文件也能被正确关闭,最佳做法是?( ) {{ select(45) }}

  • 选项 A 将 file.close() 放在 try 块的最后一行。
  • 选项 B 将 file.close() 放在 except 块中。
  • 选项 C 将 file.close() 放在 else 块中。
  • 选项 D 使用 with open('file.txt') as f: 语句。

46. 执行以下Python代码后,输出的结果是?( )

data = ['apple', 'Banana', 'cherry']
print(sorted(data))

{{ select(46) }}

  • 选项 A ['apple', 'Banana', 'cherry']
  • 选项 B ['Banana', 'apple', 'cherry']
  • 选项 C ['apple', 'cherry', 'Banana']
  • 选项 D ['cherry', 'Banana', 'apple']

47. 以下哪个选项可以正确读取文件"data.txt"的全部内容并返回一个字符串?( )

with open("data.txt", "r") as f:
    content = ________

{{ select(47) }}

  • 选项 A f.readlines()
  • 选项 B f.readline()
  • 选项 C f.read()
  • 选项 D f.read(100)

48. 以下哪种文件打开模式可以在不截断文件的情况下同时支持读写?( ) {{ select(48) }}

  • 选项 A "w"
  • 选项 B "r+"
  • 选项 C "a"
  • 选项 D "x"

49. 以下哪种排序算法的时间复杂度在最坏情况下是 O(n2)O(n^2)?( ) {{ select(49) }}

  • 选项 A 冒泡排序
  • 选项 B 选择排序
  • 选项 C 插入排序
  • 选项 D 以上都是

50. 执行以下 Python代码后,输出的结果是?( )

try:
    print(1, end="")
    raise ValueError("x")
except ValueError as e:
    print(2, end="")
else:
    print(3, end="")
finally:
    print(4, end="")

{{ select(50) }}

  • 选项 A 14
  • 选项 B 124
  • 选项 C 1234
  • 选项 D 程序报错

小测

未参加
状态
已结束
规则
OI
题目
5
开始于
2026-5-15 16:15
结束于
2026-5-15 18:15
持续时间
2 小时
主持人
参赛人数
1