当前位置: 首页 > news >正文

Python测试题2

31.(多选题,分值 2)关于变量作用域,以下说法正确的是?(ACD)

A 全局变量可以在函数内部直接访问

B 局部变量可以在函数外部访问

C global关键字用于在函数内部修改全局变量

D 函数内部定义的变量默认是局部变量
解析:

A:全局变量可在函数内直接访问(除非被局部变量遮蔽),正确。

B:局部变量仅在函数内有效,错误。

C:global用于在函数内修改全局变量,正确。

D:函数内变量默认是局部变量,正确。

32.(多选题,分值 2)以下代码中,哪些会修改原列表?(ACD)

A  lst.append(1)

B  lst = lst + [1]

C  lst.extend([1])

D lst.insert(8, 1)
解析:

A:append()原地添加元素,修改原列表。 

B:lst = lst + [1]创建新列表赋值给lst,原列表不变。   

C:extend()原地扩展列表,修改原列表。

D:insert()原地插入元素,修改原列表。

33.(单选题,分值 1.5)运行以下代码,输出结果是?(B)


x = [1,2]
def func():
x = [3,4]
x.append(5)
print(x)
func()
print(x)
A [3,4,5][3,4,5]

B [3,4,5][1,2]

C [1,2,5][1,2,5]

D [1,2][1,2]
解析:
func()中x = [3,4]是局部变量,修改后打印[3,4,5];全局变量x仍为[1,2]。

34.(单选题,分值 1.5)运行以下代码,输出结果是?(D)


x = 10
def func():
print(x)
x=20
func()
print(x)
A 10 20

B  20 20

C 10 10

D 抛出异常
解析:
函数内先打印x再赋值x=20,Python 认为x是局部变量,但打印时未定义,触发UnboundLocalError。

35.(单选题,分值 1.5)运行以下代码,输出结果为?(D)


a, b, c, d = 1, 2, 3, 4
c, d, a, b = d, b, a, c
print(a, b, c, d)
A  1 3 2 4

B  1 2 4 3

C  1 4 2 3

D  1 3 4 2
解析:
初始a=1, b=2, c=3, d=4,赋值后:
c = d=4,d = b=2,a = a=1,b = c=3,最终a=1, b=3, c=4, d=2。

36.(单选题,分值 1.5)以下代码的输出结果是?(B)


def flatten(lst):
result = []
for sub in lst:
for num in sub:
result.append(num)
return result
nested = [[1,2], [3,4]]
print(flatten(nested))
A [[1, 2, 3, 4]]
B [1,2,3,4]
C [1, 2, [3,4]]
D 抛出异常
解析:
lst 是传入的 nested = [[1,2], [3,4]],第一次取 sub = [1,2],第二次取 sub = [3,4] 。
当 sub = [1,2] 时,内层循环取 num = 1 → result.append(1);取 num = 2 → result.append(2) ,此时 result = [1,2] 。
当 sub = [3,4] 时,内层循环取 num = 3 → result.append(3);取 num = 4 → result.append(4) ,此时 result = [1,2,3,4] 。
循环结束后,return result 返回 [1,2,3,4] ,print(flatten(nested)) 输出该列表。

37.(单选题,分值 1.5)以下代码的输出结果是?( C )


def process(lst):
lst = lst + [4]
return lst
original = [1,2,3]
modified = process(original)
print(original, modified)
A [1,2,3] [1,2,3]

B [1,2,3,4] [1,2,3,4]

C  [1,2,3,] [1,2,3,4]

D 抛出异常
解析:

函数 process(lst) 接收参数 lst 后,执行 lst = lst + [4]。这里的 + 运算符用于列表拼接,会创建一个新的列表对象(原列表 lst 与 [4] 拼接的结果),并将新列表赋值给局部变量 lst。
原列表 original = [1,2,3] 并未被修改,因为拼接操作不会影响原始对象,只是创建了新对象。
函数返回新列表 [1,2,3,4],赋值给 modified。因此,print(original, modified) 输出
[1,2,3] [1,2,3,4]。

38.(单选题,分值 1.5)以下代码的输出结果是?()


def double(lst):
new_lst = []
for num in lst:
new_lst.append(num * 2)
return new_lst
nums = [1,2,3]
result = double(nums)
print(nums, result)
A [1,2,3] [1,2,3]

B [1,2,3] [2,4,6]

C  [2,4,6] [2,4,6]

D 抛出异常
解析:
double()返回新列表[2,4,6],原列表nums不变。

39.(单选题,分值 1.5)以下代码的输出结果是?( C )


lst = [1,2,3]
new_lst = []
for num in lst:
new_lst.insert(0, num * 2)
print(new_lst)
A [2,4,6]

B [2,6,12]

C [6,4,2]

D [12,6,2]
解析:
insert(0, num2)在列表头部插入元素:插入12=2 → [2];插入22=4 → [4,2];插入32=6 → [6,4,2]。

40.(单选题,分值 1.5)运行以下代码,输出结果是?(A)


lst = [1,2,3]
for i in range(1,len(lst)):
lst[i] = lst[i-1] + lst[i]
print(lst)
A [1,3,6]

B [1,3,5]

C[1,2,6]

D[1,2,5]
解析:
初始 lst = [1,2,3],len(lst)=3,range(1, 3) 得到 i = 1 和 i = 2。
当 i = 1 时:lst[1] = lst[0]+lst[1] = 1 + 2 = 3,此时 lst = [1, 3, 3]。
当 i = 2 时:lst[2] = lst[1]+lst[2] = 3 + 3 = 6,此时 lst = [1, 3, 6]。

41.(单选题,分值 1.5)以下代码的输出结果是?(D)


lst = [1,2,3]
for i in lst:
lst.pop(0)
print(lst)
A  []
B [1, 2, 3]
C [2,3]
D [3]
解析:
列表 lst = [1,2,3],for 循环会迭代列表中的元素,共计划迭代 3 次(因初始长度为 3 )。
第一次循环:迭代变量 i 取列表第一个元素1。执行 lst.pop(0) ,移除列表第一个元素 1 ,列表变为 [2,3] 。
第二次循环:迭代器按初始长度继续取第二个元素,此时列表已改变,实际取到的是 2(原列表第二个元素,现列表第一个元素 )。执行 lst.pop(0) ,移除列表第一个元素 2 ,列表变为 [3] 。
第三次循环:迭代器本应取第三个元素,但此时列表长度已变为 1 ,迭代终止 。
42.(单选题,分值 1.5)运行以下代码,输出结果是?( C )


lst = [1,2,3]
result = []
for num in lst:
if num > 1:
result.append(num * 2)
print(result)
A [ ]

B [2]

C[4,6]

D [2,4,6]
解析:
筛选num>1的元素(2,3),翻倍后为[4,6]。

43.(单选题,分值 1.5)以下代码的输出结果是?(B)


lst = [1,2,3]
for num in lst:
num *= 2
print(lst)
A [2,4,6]

B [1,2,3]

C [4,8,12]

D 抛出异常
解析:
num *= 2仅修改循环变量,不影响原列表lst,仍为[1,2,3]。

44.(单选题,分值 1.5)以下代码的输出结果是?(D)


lst = [1,2,3]
lst.append([4,5])
lst.extend([6,7])
lst.insert(8,9)
print(lst)
A [1,2,3,4,5,6,7,9]

B [1,2,3,[4,5,8,9],6,7]

C [1,2,3,6,7,[4,5],9]

D [1,2,3,[4,5],6,7,9]
解析:
append([4,5])添加子列表 → [1,2,3,[4,5]];extend([6,7])添加元素 → [1,2,3,[4,5],6,7];insert(8,9)在索引 8 插入 9(当前长度为 6,索引 8 等价于末尾)→ [1,2,3,[4,5],6,7,9]。

45.(单选题,分值 1.5)运行以下代码,输出结果是?(B)


matrix = [[0] * 2] * 3
matrix[0][0] = 1
print(matrix)
A [[1,0], [0,0], [0,0]]

B [[1,0], [1,0], [1,0]]

C [[1,1], [1,1], [1,1]]

D 抛出异常
解析:
[[0]*2]*3创建 3 个引用同一子列表的列表,修改matrix[0][0]会影响所有子列表,结果[[1,0],[1,0],[1,0]]。

46.(单选题,分值 1.5)以下代码的输出结果是?( C )


def func(a, b):
return a + b, a * b
sum, product = func(3, 4)
print(sum, product)
A 12 7

B 3 4

C 7 12

D 抛出异常
解析:
func(3,4)返回(7, 12),分别赋值给sum和product,输出7 12。

47.(单选题,分值 1.5)以下关于 Python 函数的说法,错误的是?(B)

A 函数可以返回多个值

B 函数必须有参数

C 函数可以作为参数传递给其他函数

D 函数可以嵌套定义
解析:
函数可以没有参数(如def func(): pass),B 错误。

48.(单选题,分值 1.5)运行以下递归函数,输出结果是?(B)


def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
print(factorial(3))
A 3

B 6

C 9

D 抛出 RecursionError
解析:
factorial(3) = 3*2*1 = 6。

49.(单选题,分值 1.5)运行以下代码,输出结果是?(B)


def modify_list(lst):
lst.append(4)

my_list = [1,2,3]
modify_list(my_list)
print(my_list)
A [1,2,3]

B [1,2,3,4]

C [4]

D 抛出异常
解析:
modify_list()通过引用修改原列表,添加 4 后my_list变为[1,2,3,4]。

50.(单选题,分值 1.5)运行以下代码,输出结果是?(B)


result = []
for i in range(3):
inner_list = []
for j in range(2):
inner_list.append(i + j)
result.append(inner_list)
print(result)
A [[0,1,2], [1,2,3], [2,3,4]]

B [[0,1], [1,2], [2,3]]

C [[0,1], [2,3], [4,5]]

D [[0,1,2], [0,1,2], [0,1,2]]
解析:
外层循环i=0,1,2,内层循环j=0,1,i+j分别为0+0=0,0+1=1;1+0=1,1+1=2  2+0=2,2+1=3,结果[[0,1],[1,2],[2,3]]。

51.(单选题,分值 1.5)运行以下代码,输出结果是?(D)


nums = [1,2,3,4,5]
i = 0
while i < len(nums):
if nums[i] % 2 == 0:
nums.pop(i)
else:
i += 1
print(nums)
A [3,4,5]

B [2,3,5]

C  [1,3,4]

D [1,3,5]
解析:

遍历列表,删除偶数:
i=0(1 是奇数,i=1);i=1(2 是偶数,删除后列表为[1,3,4,5],i不变);i=1(4 是偶数,删除后列表为[1,3,5],i不变);最终[1,3,5]。

52.(单选题,分值 1.5)运行以下代码,输出结果是?(C)


count = 0

count = 0
for i in range(5):
for j in range(3):
if i == 2 and j == 1:
break
count += 1
print(count)
A 15

B 14

C 13

D12
解析:
先看循环结构:外层 for i in range(5) 会让 i 取 0、1、2、3、4 ,共 5 轮;内层 for j in range(3) 让 j 取 0、1、2 ,每轮外层循环对应 3 次内层循环尝试。
再看特殊情况:当 i = 2 且 j = 1 时,触发 break ,会提前终止当前 i=2 时的内层循环。
接着统计 count += 1 执行次数:
i = 0 时,内层 j 正常走 0、1、2 ,count 加 3 次。
i = 1 时,同理,count 加 3 次。
i = 2 时,j = 0 执行 count += 1;j = 1 触发 break,j = 2 不执行,仅加 1 次。
i = 3 时,内层正常,count 加 3 次。
i = 4 时,内层正常,count 加 3 次。
最后计算总和:3 + 3 + 1 + 3 + 3 = 13 ,所以输出 count 为 13 ,选 C 。

53.(单选题,分值 1.5)有如下代码,要使程序输出 1 到 100(包含 100)中所有能被 3 整除的数的和,空白处应填写?(A)


sum_num = 0
for i in range(1, 101):
_______
sum_num += i
print(sum_num)
A if i % 3 == 0:

B if i % 3 != 0:

C while i % 3 == 0:

D while i % 3 != 0:
解析:
需累加能被 3 整除的数,条件为i % 3 == 0。

54.(单选题,分值 1.5)以下代码的输出结果是?(D)


for i in range(1,6,2):
print(i,end=' ')
if i == 3:
continue
print(i + 1, end='')
A 1 2 3 4 5

B 1 2 3 4

C 1 2 4 5 6

D1 2 3 5 6
解析:
range(1,6,2) 生成序列 1,3,5 ,循环三次,i 依次为 1、3、5 。
i=1:先 print(1,end=' ') 输出 1 ,再 print(1 + 1, end='') 输出 2 。
i=3:先 print(3,end=' ') 输出 3 ,因 if i == 3 触发 continue ,跳过 print(i + 1...) 。
i=5:先 print(5,end=' ') 输出 5 ,再 print(5 + 1, end='') 输出 6 。
最终输出拼接为 1 2 3 5 6 ,选 D 。

55.(单选题,分值 1.5)以下关于 Python 中 for 循环和 while 循环的说法,错误的是?( C )

A for 循环通常用于遍历序列(如列表、元组、字符串等),while 循环通常用于条件判断循环
B for 循环的循环次数在循环开始前通常是确定的,而 while 循环的循环次数可能在循环开始时不确定
C for 循环不能实现无限循环,而 while 循环可以通过设置合适的条件实现无限循环
D for 循环和 while 循环都可以使用 break 和 continue 语句来控制循环流程
解析:
for循环可通过while True实现无限循环(如for _ in iter(int, 1):),C 错误。

56.(单选题,分值 1.5)以下代码的输出结果是?(B)


for i in range(5):
if i == 3:
break
print(i, end='')
else:
print("else")
A 012else

B 012

C 01234

D 01234else
解析:
i=3时break,循环提前终止,else不执行,仅打印012。

57.(单选题,分值 1.5)以下表达式结果为 0 的是?(D)

A 5 & 3

B 5 | 3

C 5 << 3

D5 >> 3
解析:

A:5 & 3 = 1(二进制101 & 011 = 001) 

B:5 | 3 = 7(101 | 011 = 111)

C:5 << 3= 40(左移 3 位)

D:5 >> 3 = 0(右移 3 位,101 → 000)

58.(单选题,分值 1.5)运行以下代码,输出结果是?(A)


a = 5
b = 3
print(a & b, a | b, a ^ b)
A 1 7 6

B 0 7 6

C 1 6 7

D 0 6  7
解析:
5&3=1,5|3=7,5^3=6。

59.(单选题,分值 1.5)运行以下代码,输出结果是?(A)


a = False
b = True
print(a and b or not a and not b)
A True

B False

C 抛出异常

D 无法确定
解析:
a=False, b=True,计算:a and b = False;not a and not b = True and False = False;False or False = False。

60.(单选题,分值 1.5)运行以下代码,输出结果是?( C )


a = [1,2]
b = [1,2]
print(a is b, a == b)
A True True

B True False

C False True

D False False
解析:
a和b是不同对象(a is b → False),但值相等(a == b → True)。

http://www.dtcms.com/a/540613.html

相关文章:

  • WordPress 上传图片报错:明明是 PNG,却提示「请转换为 JPEG 或 PNG 格式」?
  • annotation-logging-guide
  • 没有公司做网站重庆网站推广入口
  • 管理k8s的资源类型(PV/PVC)的脚本
  • 【记录】飞书多维表格|做自动显示当前填写情况(包括填写人数、未填写情况、最高分和平均分)的收集表
  • 清除入侵痕迹(winLinuxweb)
  • 找设计师的网站淘宝客 网站建设
  • 第六部分:VTK进阶(第175章 并行 IO管线与检查点)
  • 河南海绵城市建设网站wordpress中文版书籍
  • Opencv(三): 二值化
  • GitHub使用技巧——上传本地项目
  • 网站建设用途一个旅游网站建设需求分析
  • 甜品网站网页设计代码网上免费推广
  • 渗透测试工具 windows上搭建vmware kali-linux
  • ecstore等产品开启缓存-后台及前台不能登录原因-setcookie+session问题
  • 哨兵原理、Redis分片、Redis数据结构、内存回收、缓存问题以及分布式事务相关内容(CAP、BASE、AT脏写及其解决、TCC、最大努力通知)
  • Windows图标修复--缓存重建教程
  • 服务器上用Slurm 管理训练bash 脚本任务,申明使用GPU
  • 上海小程序网站开发公司wordpress国外主题下载地址
  • 新城镇建设官方网站kali建设网站
  • 便携式el检测仪:确保光伏组件的质量与性能稳定
  • 英一2015年真题学习笔记
  • Docker 部署银河麒麟(Kylin Linux)全流程教程
  • GPT、DeepSeek等大语言模型应用
  • 大语言模型基础LLM:Transformer和大模型
  • 本地用docker开发的php 程序如何部署到阿里云的ecs上
  • html css js网页制作成品——一念关山HTML+CSS网页设计(5页)附源码
  • BuildingAI二开 Coze套餐管理页面PRD
  • 加强学院网站的建设与管理一个完整的外贸流程
  • 大屏开发,在线歌词舆情分析系统demo,基于python,flask,web,echart,nlp,自然语言数据库mysql。