小测
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
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
a和b都必须为正整数,否则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. 以下哪种排序算法的时间复杂度在最坏情况下是 ?( ) {{ 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 程序报错