1.(多选题,分值 2)以下能实现 1-100 偶数求和的有?(ABD)
A
sum=0
for i in range(2,101,2):
sum+=i
B
sum=0
i=1
while i<=100:
if i%2==0:
sum +=i
i+=1
Csum(range(1,101,2))
Dsum(i for i in range(1,101) if i%2==0)
解析:
A:range(2,101,2)直接生成 2-100 的偶数,累加正确。
B:while循环中,若i为偶数则累加,每次循环i递增1,逻辑正确。
C:range(1,101,2)生成奇数,求和结果为奇数和,错误。
D:生成器表达式筛选偶数后求和,正确。
2.(单选题,分值 1.5)print("Py"+"thon"[1:3])的输出是?(D)
A "Pyth"
B "Python"
C "Pyt"
D "Pyho"
解析:
thon对应的索引分别是0123,[1:3]表示从1开始到3结束(不包括3),所以最后是ho,再加上前面的Py,最后答案为Pyho,选D
3.(单选题分值1.5)列表a=[5,2,8,1],执行a.sort(reverse=True)后,a的值是?(B)
A [1,2,5,8]
B [8,5,2,1]
C [5,2,8,1]
D [1,8,2,5]
解析:
a.sort(reverse=True)对列表原地降序排序,[5,2,8,1]降序后为[8,5,2,1]。
4.(判断题,分值 1)函数内部定义的局部变量,在函数调用结束后就会被销毁。(✔)
解析:
函数内局部变量仅在函数调用时存在,调用结束后被销毁。
5.(单选题,分值 1.5)以下代码的输出结果是?(C)
def recursive(n):
if n==0:
return 1
return n * recursive(n -1)//2
print(recursive(5))
A 120
B 60
C 0
D 报错
解析:
若假设代码缩进正确(return n * recursive(n -1)//2与if语句对齐),计算过程为:
recursive(5) = 5 * recursive(4) // 2
recursive(4) = 4 * recursive(3) // 2
recursive(3) = 3 * recursive(2) // 2
recursive(2) = 2 * recursive(1) // 2
recursive(1) = 1 * recursive(0) // 2 = 1 * 1 // 2 = 0
逐步回溯可得结果为0,因此正确答案为 C。
6.(多选题,分值 2)以下哪些代码可以正确地创建一个包含 1 到 5 的列表?(ABD)
A list(range(1,6))
B [x for x in range(1,6)]
C list(12345)
D [int(x) for x in "12345"]
解析:
A:range(1,6)生成 1-5,转为列表正确。
B:列表推导式遍历 1-5,正确。
C:list(12345)报错(整数不可迭代),错误。
D:将字符串 "12345"每个字符转为整数,正确。
7.(多选题,分值 2)以下哪些代码会产生异常?(ABCD)
A print([1,2,3][3])
B print(1/0)
C print(int('abc',11))
D print(len(None))
解析:
A:1,2,3访问索引 3(列表最大索引为 2),触发IndexError,产生异常。
B:1/0除数为0,触发ZeroDivisionError,产生异常。
C:int('abc', 11)中,11 进制的有效字符范围是 0-10(对应 'a'),而'b'在 11 进制中代表 11,超出基数范围(基数为 11 时,最大数字为 10),实际会触发ValueError: invalid literal for int() with base 11: 'abc',产生异常。
D:len(None)中,None不是可迭代对象,无len方法,触发TypeError,产生异常。
8.(单选题,分值 1.5)以下代码的输出结果是什么?(A)
list1 = [1,2,3]
list2 = [4,5,6]
print([x * y for x in list1 for y in list2])
A [4,5,6,8,10,12,12,15,18]
B [[4,5,6],[8,10,12],[12,15,18]]
C [4,8,12,5,10,15,6,12,18]
D [1,2,3,4,5,6]
解析:
列表推导式 [x * y for x in list1 for y in list2] 逻辑是:
遍历 list1 中每个 x ,再遍历 list2 中每个 y ,计算 x * y 。
list1 = [1,2,3],list2 = [4,5,6] 。
当 x=1 时,y 取 4、5、6 → 14=4,15=5,16=6 。
当 x=2 时,y 取 4、5、6 → 24=8,25=10,26=12 。
当 x=3 时,y 取 4、5、6 → 34=12,35=15,3*6=18 。
结果列表为 [4,5,6,8,10,12,12,15,18] ,对应选项 A 。
9.(单选题,分值 1.5)以下代码的输出结果是什么?(B)
def func(n):
if n <= 1:
return n
return func(n-1)+func(n-2)
print(func(4))
A 2
B 3
C 4
D 5
解析:
func(n)计算斐波那契数列第 n 项
func(4) = func(3) + func(2) = (func(2)+func(1)) + (func(1)+func(0)) = (1+1)+(1+0) = 3。
10.(单选题,分值 1.5)以下代码的输出结果是什么? ( C )
x = 10
def foo():
global x
x +=5
return x
def bar():
x = 5
return foo()
print(bar())
A 5
B 10
C 15
D 报错
解析:
foo()中用global声明x为全局变量,调用foo()时x从 10 变为 15;bar()中局部变量x=5不影响全局,最终输出 15。
11.(判断题,分值 1)if x:中的x可以是任意 Python 对象。(✔)
解析:
Python 中任何对象都可作为if条件,非零 / 非空对象为True,否则为False。
12(判断题,分值 1)a = [1,2]和b = [1,2]使a和b指向同一对象。(✖)
解析:
a = [1,2]和b = [1,2]创建两个独立列表对象,a is b结果为False。
13.(判断题,分值 1)列表的remove()方法通过索引删除元素。(✖)
解析:
remove()通过值删除第一个匹配元素,pop()通过索引删除。
14.(多选题,分值 2)关于列表切片a = [1,2,3,4,5],正确的有?(ABCD)
A a[1:3] → [2,3]
B a[ : 3]→[1,2,3]
C a[-1] → 5
D a[::2] → [1,3,5]
解析:
A:a[1:3]取索引 1-2,结果[2,3]。
B:a[:3]取开头到索引 2,结果[1,2,3]。
C:a[-1]取最后一个元素 5。
D:a[::2]步长为 2,取[1,3,5]。
15.(多选题,分值 2)if-elif-else结构的特点有?(ABD)
A 可以有多个elif
B else必须放在最后
C 所有分支都会被执行
D 只能有一个分支被执行
解析:
A:可包含多个elif分支。
B:else必须在最后(可选)。
C:仅第一个满足条件的分支执行,错误。
D:分支互斥,仅一个执行。
16.(多选题,分值 2)以下输入转换正确的有?(ABC)
A int("12") → 12
B float("3.14") → 3.14
C str(100) → "100"
D list(123) → [1,2,3]
解析:
D:list(123)报错(整数不可迭代),错误。
17.(多选题,分值 2)以下递归函数可能陷入无限递归的有?(AC)
A
def f(n):
return n*f(n-1)
B
def f(n):
if n ==0:
return 1
return n*f(n-1)
C
def f(n):
return f(n)
D
def f(n):
if n>0:
return f(n-1)
解析:
A:无终止条件,递归调用f(n-1)会无限进行(直到栈溢出)。
B:有n==0的终止条件,正确递归。
C:直接调用f(n),无终止,无限递归。
D:当n<=0时无返回,但不会无限递归(仅对n>0递归)。
18.(多选题,分值 2)以下能跳出循环的语句有?(AC)
A break
B continue
C return
D pass
解析:
A:break直接终止循环。
B:continue跳过当前循环,进入下一次。
C:return在函数中直接返回,终止循环。
D:pass仅占位,不影响循环。
19.(判断题,分值 1)Python 中的列表切片操作list[1:]会返回索引为 1 和 3 的元素。(✖)
解析:
list[1:]返回从索引 1 到末尾的所有元素,而非仅索引 1 和 3。
20.(判断题,分值 1)在 Python 中,函数内部定义的变量默认是全局变量。(✖)
解析:
函数内变量默认是局部变量,需用global声明为全局变量。
21.(判断题,分值 1)Python 中的列表可以包含不同类型的元素。(✔)
解析:
Python 列表可包含不同类型元素(如[1, "a", True])。
22.(判断题,分值 1)在 Python 中,a is b和a == b的含义完全相同。(✖)
解析:
a is b判断是否为同一对象(内存地址),a == b判断值是否相等。
23.(判断题,分值 1)Python 中的字符串是不可变类型,一旦创建就不能修改。(✔)
解析:
字符串创建后不能修改单个字符(如s[0] = 'a'报错)。
24.(判断题,分值 1)Python 中的变量不需要声明类型,可以直接赋值使用。(✔)
解析:
Python 是动态类型语言,变量无需声明类型,直接赋值即可。
25.(多选题,分值 2)在 Python 中,以下哪些方法可以用于获取列表的元素?(ACD)
A list[index]
B list.get(index)
C list.pop(index)
D list[start:end]
解析:
A:list[index]通过索引访问,正确。
B:列表无get()方法(字典有),错误。
C:pop(index)删除并返回指定索引元素,正确。
D:切片list[start:end]返回子列表,正确。
26.(多选题,分值 2)在 Python 中,以下哪些是列表的合法操作?(ABD)
A [1,2] + [3,4]
B [1,2] * 2
C [1,2] - [1]
D [1,2,3][1:]
解析:
A:+用于列表拼接,正确。
B:*用于重复列表,正确。
C:列表不支持-操作,错误。
D:切片操作合法,正确。
27.(多选题,分值 2)以下哪些是 Python 中的基本数据类型?(ABD)
A 整数(int)
B 浮点数(float)
C 数组(array)
D 字符串(str)
解析:
A:整数(int)是基本类型。
B:浮点数(float)是基本类型。
C:数组(array)需导入模块,非基本类型。
D:字符串(str)是基本类型。
28.(多选题,分值 2)关于 Python 变量,以下说法正确的是?(ABCD)
A 变量无需声明类型
B 变量存储的是对象的引用
C 不可变对象无法修改
D 可变对象的修改会影响所有引用
解析:
A:变量无需声明类型,正确。
B:变量存储对象引用,正确。
C:不可变对象(如字符串)本身不可修改,正确。
D:可变对象(如列表)修改后,所有引用该对象的变量都会受影响,正确。
29.(单选题,分值 1.5)以下代码的输出结果是?(B)
def func(n):
if n == 0:
return []
else:
return func(n-1) + \[n]
print(func(3))
A [3,2,1]
B [1,2,3]
C [0,1,2,3]
D 抛出异常
解析:
func(3) = func(2) + [3],func(2) = func(1) + [2],func(1) = func(0) + [1],func(0) = [],最终结果[1,2,3]。
30.(多选题,分值 2)关于递归函数,以下说法正确的是?(ACD)
A 递归函数必须有终止条件
B 递归函数效率一定高于循环
C 递归过深可能导致栈溢出
D 所有递归函数都可以转化为循环
解析:
A:递归必须有终止条件,否则无限递归,正确。
B:递归效率通常低于循环(有栈开销),错误。
C:递归过深会导致栈溢出(如RecursionError),正确。
D:所有递归都可转为循环,正确。