# 1.技术面试题

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

答:单调递增,单调递减。一个元素入栈,一个元素出栈。

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

答:过维护队列内元素的单调性(递增 / 递减),在新元素入队时从队尾移除无效元素,同时从队头移除过期元素,确保高效获取窗口内的极值

# 2.HR面试题

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

答:当下工作是否具有发展前景以及待遇,公司是否合理安排(如996,克扣工资等),以及双倍工资是否有隐含条件,不利于自己的。对方工作是否有保障,

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

答:今天代表今天,不代表以后。我认为不能以今天作为我我表现评判准则,我会更努力做好自己分内的事,可能今天在某些环节我没有充分展现出与岗位的匹配度,虽然这次没能通过,但如果可以的话,我想请教一下,从岗位需求来看,我在哪些能力或经验上还有比较明显的差距?这样我可以针对性地去改进,也希望未来如果有更匹配的岗位时,能有再次尝试的机会。

# 3.选择题

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

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

答:C

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

```python
for i in range(5):
    if i == 3:
        continue
    print(i, end=' ')
```

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

答:B

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

```python
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`

答:D 

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

```python
sum = 0
i = 1
while i < 10:
    sum += i
    i += 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)以下代码的输出结果是什么?**

```python
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个数:**

```python
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)以下代码的输出结果是什么?**

```python
i = 0
while i < 5:
    i += 1
    if i == 3:
        continue
    print(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)以下代码的输出结果是什么?**

```python
for i in range(1, 5):
    for j in range(1, 5):
        if i * j > 10:
            break
        print(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 
```

答:C

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

```python
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)以下代码的输出结果是什么?**

```python
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循环,适用于已知循环次数,需要遍历序列或其他可迭代对象的场景。如遍历列表中的元素、字典中的键值对。    while循环,适用于循环次数不确定,需根据某个条件控制循环结束时机的场景

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

答:break:立即终止当前所在的循环(forwhile)、continue:跳过当前循环中剩余的代码,直接进入下一次循环迭代。pass:空语句,用于占位,保持代码结构的完整性,不执行任何操作

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

答:range()函数是一个内置函数,主要用于生成不可变的整数序列,在for循环中经常被用来控制循环的次数或遍历索引

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

答:在一个循环内部包含另一个或多个循环的结构,外层循环开始第一次迭代(即外层循环变量取第一个值)。内层循环从第一次迭代开始,完整执行所有迭代(直到内层循环条件不满足)。内层循环执行完毕后,外层循环进入下一次迭代(外层循环变量取下一个值)。重复步骤 2 和 3,直到外层循环的所有迭代执行完毕,整个嵌套循环结束。

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

**题目描述**

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

![image-20250304171517426](https://zh-1258460726.cos.ap-nanjing.myqcloud.com//typora-pic/image-20250304171517426.png)

**输入输出描述**

输入两行,每行四个数据,分别是矩形的中心坐标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
>
> 输出:
>
> 相离

答:

```python
# 在此写入你的代码
```

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

```python
                        1
                    1    2    1
                1    2    4    2    1
            1     2    4    8    4    2    1
        1    2    4    8    16    8    4    2    1
    1    2    4    8    16    32    16    8    4    2    1
1    2    4    8    16    32    64    32    16    8    4    2    1
```

答:

```python
# 在此写入你的代码
```n = 7
for i in range(n):
    max_num = 2 ** i
    line = [2 ** j for j in range(i + 1)] + [2 ** j for j in range(i - 1, -1, -1)]
    line_str = ' '.join(map(str, line))
    total_width = len(' '.join(map(str, [2 ** j for j in range(n)] + [2 ** j for j in range(n - 2, -1, -1)])))
    print(line_str.center(total_width))

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

```python
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
```

答:

```python
# 在此写入你的代码
```n = 5

 for i in range(n):

print(' ' * (n - i - 1) + '*' * (2 * i + 1))

 for i in range(n - 2, -1, -1):

print(' ' * (n - i - 1) + '*' * (2 * i + 1))

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

**题目描述**

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

**输入输出描述**

输入两个正整数

输出最小公倍数

**示例1**

> 输入:
>
> 3 9
>
> 输出:
>
> 9

**示例2**

> 输入:
>
> 4 6
>
> 输出:
>
> 12

答:

```python
# 在此写入你的代码
```a, b = map(int, input().split(" "))

def min_math(x, y):

while y: x,

y = y, x % y

return x

g =min_math(a, b)

lcm = (a * b) // g

print(lcm)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐