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

python作业2

1.技术面试题

(1)详细描述单调栈的工作原理和应用场景

答:单调栈的工作原理为在新元素入栈时,通过弹出栈顶元素维持栈的单调性。
其应用场景有:计算直方图中最大矩形面积,解决接雨水问题,股票价格跨度计算等

(2)详细描述单调队列的工作原理和应用场景

答:单调队列是一种特殊的队列数据结构,其工作原理是队列内的元素始终保持严格的单调性(递增或递减),且支持在队头和队尾进行插入、删除操作。
其应用场景有:滑动窗口的最大值 / 最小值, 队列的最大值(或最小值),接雨水问题(优化解法), 最大矩形面积(直方图变种), 滑动窗口中位数(辅助优化)

2.HR面试题

(1)如果竞争对手用双倍薪资挖你,你会怎么选择?

答:我认为如若发生这种情况,我会考虑我个人在公司的重要性,如果我在公司有着很大的贡献,我自然不会抛弃我的团队,而如果我在公司里没能做出什么贡献,那我也不会在公司里拖团队的后腿。

(2)我们觉得你今天表现一般,不符合岗位要求,你有什么想说的?

答:感谢面试官能给我这个展现自己的机会,我很遗憾没能给面试官留下一个很好的印象,我个人认为我的个人的能力和性格都是和这个岗位相匹配的,同时我也愿意为公司做出适当的调整,因为我对贵公司和这份岗位相当感兴趣。希望您能再考虑一下,谢谢。

3.选择题

(1)在Python中,以下哪个不是循环控制语句?

A. break
B. continue
C. pass
D. return

答:c

(2)以下代码的输出结果是什么?

for i in range(5):if i == 3:continueprint(i, end=' ')

A. 0 1 2 3 4
B. 0 1 2 4
C. 0 1 2
D. 3

答:b

(3)完成以下代码,使其能够打印出1到100之间所有的偶数:

for i in range(1, 101):if ______:print(i, end=' ')

A. i % 2 == 0
B. i % 2 == 1
C. i / 2 == 0
D. i // 2 == 0

答:a

(4)以下代码有一个错误,导致它无法正确计算1到10的和。请选择正确的修改方案:

sum = 0
i = 1
while i < 10:sum += ii += 1
print(sum)

A. 将i < 10改为i <= 10
B. 将i += 1改为i += 2
C. 将sum += i改为sum = sum + i + 1
D. 将i = 1改为i = 0

答:a

(5)以下代码的输出结果是什么?

for i in range(3):for j in range(2):print(f"({i},{j})", end=' ')

A. (0,0) (0,1) (1,0) (1,1) (2,0) (2,1)
B. (0,0) (1,0) (2,0) (0,1) (1,1) (2,1)
C. (0,0) (0,1) (0,2) (1,0) (1,1) (1,2)
D. (0,0) (1,1) (2,2)

答:a

(6)完成以下代码,使其能够打印出斐波那契数列的前10个数:

a, b = 0, 1
for _ in range(10):print(a, end=' ')______

A. a, b = b, a + b
B. a, b = a + b, b
C. a, b = b, a
D. a, b = a + 1, b + 1

答:a

(7)以下代码的输出结果是什么?

i = 0
while i < 5:i += 1if i == 3:continueprint(i, end=' ')
else:print("Done")

A. 1 2 3 4 5 Done
B. 1 2 4 5 Done
C. 1 2 4 5
D. 1 2 Done

答:b

(8)以下代码的输出结果是什么?

for i in range(1, 5):for j in range(1, 5):if i * j > 10:breakprint(f"{i}*{j}={i*j}", end=" ")print()

A.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 
3*1=3 3*2=6 3*3=9 3*4=12 
4*1=4 4*2=8 4*3=12 4*4=16 

B.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 

C.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 
3*1=3 3*2=6 3*3=9 

D.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 

答:b

(9)以下代码的输出结果是什么?

for i in range(4):for j in range(4):if (i + j) % 2 == 0:print("*", end="")else:print("#", end="")print()

A.

****
####
****
####

B.

*#*#
#*#*
*#*#
#*#*

C.

*#*#
*#*#
*#*#
*#*#

D.

****
****
****
****

答:b

(10)以下代码的输出结果是什么?

count = 0
for i in range(1, 5):for j in range(1, 5):for k in range(1, 5):if i != j and j != k and i != k:count += 1
print(count)

A. 24
B. 36
C. 60
D. 64

答:a

4.问答题

(1)Python中有哪几种基本的循环结构?请简要说明它们的语法和适用场景。

答:
for循环:语法: for 变量 in 可迭代对象: 适用场景:列表、元组、字符串、字典、集合、使用 range() 函数等
while 循环:语法:while 条件表达式 适用场景:用户交互、网络请求、计数器、标志位等

(2)Python中有哪些循环控制语句?它们各自的作用是什么?请给出示例说明。

答:
break语句:立即退出当前所在的循环(for 或 while),不再执行后续迭代
示例:
for i in range(5):
if i == 3:
break # 当 i=3 时,终止整个循环
print(i, end=’ ') # 输出:0 1 2

continue语句:跳过当前循环体中剩余的代码,直接进入下一次迭代
示例:
for i in range(5):
if i == 3:
continue # 当 i=3 时,跳过后续代码,直接进入下一次迭代
print(i, end=’ ') # 输出:0 1 2 4

else语句:当循环未被 break 中断时,执行 else 块中的代码
示例:
for i in range(3):
print(i, end=’ ') # 输出:0 1 2
else:
print(“循环正常结束”) # 输出此句

for i in range(3):
if i == 1:
break
else: # 不会执行,因为循环被 break 中断
print(“循环正常结束”)

pass语句:不执行任何操作,仅作为语法占位符,用于保持代码结构完整性
示例:
for i in range(3):
if i == 1:
pass # 占位,不执行任何操作
print(i, end=’ ') # 输出:0 1 2

(3)在Python的for循环中,range()函数扮演着重要角色。请详细说明range()函数的语法、参数含义和使用方法,并给出至少3个不同用法的示例。

答:
range()函数有三种语法:
range(b):从0到b,步长1 含义是生成从 0 到 b-1 的整数序列
range(a,b):从a到b,步长1 含义是生成从 a 到 b-1 的整数序列
range(a,b,c):从a到b,步长c 含义是从 a 开始,每次递增 c(若c为正数)或递减 c(若c为负数),直到接近但不包含 b

三个不同的使用方法:
1.range(b)
for i in range(5):
print(i, end=’ ') # 输出:0 1 2 3 4

2.range(a,b)
for num in range(1, 10):
print(num, end=’ ') # 输出:1 2 3 4 5 6 7 8 9

3.range(a,b,c)

even_numbers = list(range(2, 21, 2))
print(even_numbers) # 输出:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

reverse_numbers = list(range(10, 0, -1))
print(reverse_numbers) # 输出:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

(4)什么是嵌套循环?请解释嵌套循环的工作原理。

答:
嵌套循环是指在一个循环的内部包含另一个或多个循环的结构。
嵌套循环的工作原理为外层控制次数,内层循环完整进行,意思是外层循环一次,内层循环就要完成一个完整的循环

(5)编写代码,判断两个矩形的关系

题目描述

判断两个矩形之间的关系:包含,重叠,相离

image-20250304171517426

输入输出描述

输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高

输出两者的关系

示例1

输入:

2.5 4 2.5 43

1.5 5 0.5 3

输出:

包含

示例2

输入:

1 2 3 5.5

3 4 4.5 5

输出:

重叠

示例3

输入:

1 2 3 3

40 45 3 2

输出:

相离

答:

# def get_rect_info():line = input().strip()x, y, width, height = map(float, line.split())half_width = width / 2half_height = height / 2left = x - half_widthright = x + half_widthtop = y + half_heightbottom = y - half_heightreturn left, right, top, bottomdef main():rect1 = get_rect_info()rect2 = get_rect_info()left1, right1, top1, bottom1 = rect1left2, right2, top2, bottom2 = rect2if (left2 >= left1 and right2 <= right1 and top2 <= top1 and bottom2 >= bottom1) or \(left1 >= left2 and right1 <= right2 and top1 <= top2 and bottom1 >= bottom2):print("包含")elif (left1 <= right2 and right1 >= left2 and top1 >= bottom2 and bottom1 <= top2):print("重叠")else:print("相离")if __name__ == "__main__":main()

(6)编写代码,打印如下数字图案

                        11	2	11	2	4	2	11 	2	4	8	4	2	11	2	4	8	16	8	4	2	11	2	4	8	16	32	16	8	4	2	1
1	2	4	8	16	32	64	32	16	8	4	2	1

答:

# n = 7
for i in range(n):line = [2**j for j in range(i+1)]line += line[-2::-1]  line_str = ' '.join(map(str, line))spaces = ' ' * (4 * (n - i - 1))  print(spaces + line_str)

(7)编写代码,打印如下星星图案

    ****************
*************************

答:

# n = 5for i in range(n):spaces = ' ' * (n - i - 1)stars = '*' * (2 * i + 1)print(spaces + stars)for i in range(n-2, -1, -1):spaces = ' ' * (n - i - 1)stars = '*' * (2 * i + 1)print(spaces + stars)

(8)编写代码,求最小公倍数

题目描述

输入两个正整数,计算其最小公倍数,例如4和2的最小公倍数是4,3和5的最小公倍数是15

输入输出描述

输入两个正整数

输出最小公倍数

示例1

输入:

3 9

输出:

9

示例2

输入:

4 6

输出:

12

答:

#def gcd(a, b):while b:a, b = b, a % breturn adef lcm(a, b):return a * b // gcd(a, b)a, b = map(int, input().split())print(lcm(a, b))
http://www.dtcms.com/a/276309.html

相关文章:

  • 【时间之外】AI在农机配件设计场景的应用
  • 【详解ProTable源码】高级筛选栏如何实现一行五列
  • Elasticsearch 的 `modules` 目录
  • AMD 锐龙 AI MAX+ 395 处理器与端侧 AI 部署的行业实践
  • 【华为OD】MVP争夺战2(C++、Java、Python)
  • 拼多多电商运营技巧---价格体系设置
  • 数据的计算与格式化
  • [Python] Flask 多线程绘图时报错“main thread is not in main loop”的解决方案
  • SuperClaude命令参考手册:AI编程革命中的20个核心指令详解
  • JavaEE多线程——锁策略 CAS synchronized优化
  • UI前端大数据可视化新探索:如何利用色彩心理学提升数据传达效果?
  • [vroom] 启发式算法(路径评估) | 局部搜索优化引擎 | 解决方案输出解析
  • 单向链表反转 如何实现
  • 蓝牙BT UUID的含义以及使用方法案例说明
  • 第十八天,7月12日,八股
  • 【MySQL笔记】事务的ACID特性与隔离级别
  • 动态规划基本操作
  • AutoGen框架官方文档梳理-完整学习指南
  • Java中的方法传参机制
  • 【工程数学基础】条件极值与拉格朗日乘数法
  • uniapp弹出手机键盘,布局被顶飞,导致页面混乱问题
  • 使用包管理工具CocoaPods、SPM、Carthage的利弊与趋势
  • C#与FX5U进行Socket通信
  • 数据结构之并查集和LRUCache
  • OGC:开放地理空间联盟简介
  • YOLO家族内战!v5/v8/v10谁才是你的真命天子?(附保姆级选择指南)
  • SpringAI实现保存聊天记录到redis中
  • Softmax回归(多类逻辑回归)原理及完整代码示例实现
  • 如何查询服务器的操作系统
  • 算法题(173):枚举排列