Python测试题1

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:所有递归都可转为循环,正确。

相关推荐
想唱rap5 小时前
C++list类的模拟实现
linux·运维·服务器·数据结构·c++·windows·list
汤愈韬5 小时前
域网络,域环境搭建
windows·网络安全
namekong811 小时前
导入的 Google(Chrome)书签默认不会自动显示在「书签栏」,而是放在一个文件夹里。下面是详细步骤,帮你把 导入的全部书签添加到书签栏
windows
想不明白的过度思考者13 小时前
MySQL 8.0.x 全平台安装指南:Windows、CentOS、Ubuntu 详细步骤与问题解决
windows·mysql·centos
gfdgd xi13 小时前
Wine运行器3.4.0——虚拟机安装工具支持设置UEFI启动
android·windows·python·ubuntu·架构
Lxt.星翊1 天前
MySQL(安装和卸载、数据库存储原理图)
linux·运维·windows
本贾尼1 天前
csv文件用Excel打开后出现乱码的问题及其解决方法
windows·excel
夏玉林的学习之路1 天前
Anaconda的常用指令
开发语言·windows·python