# 1.技术面试题

(1)TCP与UDP的区别是什么?

答:

1.首先我们要知道这两者分别是什么,TCP指(传输控制协议); UDP指(用户数据报协议)它们两者都是传输层协议但两者存在一些不同

 2.从连接性上来讲TCP面向连接时(需建立三次握手(此时建立连接,确保双方都能接收数据),断开四次挥手(此时交流完成后断开连接,释放资源)而 UDP则无需连接(直接发送数据)

3.从传输上来讲TCP的传输更可靠,能保证数据确实传输,有比如发包确认,重传等方式保障,而UDP则不能保证数据送达,无重传机制

  PS:     就好比TCP是打电话,需要有人接听和挂断;而UDP则是发信息,只保证你传输出去了内容,而如果断网导致信息没有发出去它也不会自己去帮你发一次,也不会看对面接收了没有

4.从效率上来讲TCP是首部固定 20 字节(含序列号、确认号),UDP则首部仅是8 字节(含源端口、目的端口、长度、校验),正因如此TCP开销较大,传输效率较低;而UDP则无连接管理开销,传输效率高

  PS:TCP看作被精密加急的vvip包裹,需要重重关卡才能收到,但存在货没必赔,同时也因为“贵重”送的很慢

           but,UDP则类似“飞鸽传书”,它可以马上到但如果半路掉了的话就真的是掉了(因为鸽子不会帮你保管信件),且没有售后服务

(2)DHCP和DNS的作用是什么?

答:

1.首先要知道DHCP指(动态主机配置协议)和 DNS指的是(域名系统)

2.DHCP 的核心作用是自动为网络中的设备分配 IP 地址及其他网络配置参数,简化网络管理,避免手动配置的繁琐和错误。

    而DNS 的核心作用是将易记的域名(如www.xiaohsuai.com)解析为计算机可识别的 IP 地址(如 180.252.48.242),解决 “IP 地址难记” 的问题,是互联网正常运转的基础。

3.自动分配 IP 地址,分配其他网络参数,IP 地址租期管理

(3)简述 Linux 文件系统的目录结构,其中/boot、/var、/usr目录的作用分别是什么?

答:

1.首先知道Linux 文件系统的目录结构:

  • /:根目录,所有文件和目录的起点。
  • /bin:存放系统必备的用户命令(如 lscp)。
  • /sbin:存放系统管理命令(如 ifconfigshutdown)。
  • /etc:存放系统和应用的配置文件(如 passwdnginx.conf)。
  • /dev:设备文件目录(如硬盘 /dev/sda、终端 /dev/tty)。
  • /home:普通用户的主目录(如 /home/user1)。
  • /root:超级用户(root)的主目录。
  • /tmp:临时文件目录,系统重启后清空。
  • /proc:虚拟文件系统,存储系统运行时信息(如进程、内存)。
  • /sys:虚拟文件系统,存储内核和设备信息。

2.  /boot:作用:存放系统启动所需的核心文件(

  • 内核文件(如 vmlinuz):Linux 内核的二进制文件。
  • 初始化 RAM 磁盘(如 initrd.img):启动时临时根文件系统,包含必要的驱动。
  • 引导加载程序配置(如 grub/grub.cfg):GRUB 引导菜单和配置。

3.   /var:  作用:存放动态变化的数据,尤其适用于写入频繁的文件(

  • 日志文件/var/log):系统和应用的日志(如 syslognginx/access.log)。
  • 邮件队列/var/spool/mail):待发送的邮件。
  • 缓存文件/var/cache):应用缓存(如 yum 下载的包)。
  • 锁文件/var/lock):标记资源正在使用。
  • 临时文件/var/tmp):长期临时文件(重启不清空)。

4./usr:  作用:存放用户程序和只读数据,类似 Windows 的 Program Files(

  • 应用程序/usr/bin/usr/sbin):非必要的用户命令(如 gitjava)。
  • 库文件/usr/lib/usr/lib64):应用依赖的共享库。
  • 文档/usr/share/doc):程序文档和手册。
  • 源代码/usr/src):内核或应用的源码。

  PS:  /boot  通常独立分区,确保在系统崩溃时仍可访问启动文件

          /usr    通常为只读,多用户共享,可挂载

          /var    通常独立分区,避免写入操作影响其他目录

(4)Linux系统突然无法访问外网,但内网通信正常。请列出至少 5 个可能的故障点及排查步骤。

答:

1.网关出现配置错误

解决:一查二验证(看下ping不ping得通就知道了)三修复(从新调整修复网关)四配置(配置好后确保下一次使用不会出现问题)

2.DNS 服务器配置检查(也就是DNS服务器地址整错了)

解决:一查(查就是查DNS的配置)二验证(pingping就知道可不可达)三修改(改DNS)四域名解析(测试域名解析)

3.防火墙(不关它就阻止你外网访问)

解决:关闭防火墙(PS:实在关不掉也要开放对应端口可供接入,但给它关了效果最佳)

4.路由表(黑洞路由,网关冲突就会导致其故障)

解决:删除异常路由,找“黑洞”

5.外网连不上

解决:测试公网IP连通性以及看看特殊端口能不能用

 2.HR面试题

(1)假如你成功入职,却发现直属领导能力远不如你,你会如何与他共事?

答:

  首先我认为能力不单单指的是工作上的成绩,首先先放下 “能力对比” 的预设,客观观察领导的优势,学习领导在其他方面的能力,避免片面思考产生误解。

  其次以 “补位” 而非 “替代” 的心态发挥自身优势,做好细节。让领导感受到我的出发点是推进工作,而非否定他的决策。同时,主动承担更具体的专业任务,用结果证明价值,让他放心将专业环节交给我,形成 “他把控方向、我落地细节” 的互补模式。

(2)你简历上的经历并不突出,我们为什么要选你?

答:

第一,扎实的基础能力与岗位需求高度契合

第二,极强的学习能力和抗压性,能快速弥补经验差距

第三,对行业和贵司的认同度,能带来更稳定的投入

(3)你还面试了哪些公司?

答:

聚焦行业相关性

突出岗位匹配度

表达对当前公司的优先级(忠心)

(4)如果你发现公司某项业务存在合规风险,但领导暗示‘别多管闲事’,你会怎么做?

答:

1.避免仅凭直觉判断,而是花时间做扎实的核实

2.选择私下场合(如办公室一对一沟通),以 “请教 + 担责” 的姿态沟通(非挑战领导的决策)

3.重在保护公司和团队的长远利益

 3.选择题

(1)以下哪个是合法的 Python 变量名?

A. `2var`(数字开头)

B. `_var`

C. `var@1`

D. `var-1`

答:B(PS:变量名规则:1.只能包含字母数字下划线2.数字不开头3.变量不涉及Python中关键字)

(2)表达式 `True + 2` 的结果是?
A.`True`

B. `3`

C. `2`

D. `TypeError`

答:B(PS:)

(3)以下哪个表达式会引发错误?

A.`"1" + "2"`

B. `[1, 2] + [3, 4]`

C. `(1, 2) + (3, 4)`

D. `{1, 2} + {3, 4}`

答:D(PS:不支持整数类型和布尔类型)

(4)以下哪个是将字符串转换为整数的正确方法?

A. `str(5)`

B. `int("5")`

C. `float("5")`

D. `bool("5")`

答:B(PS:int函数就是可以将字符串,浮点数转换为整数类型“”中输入的是有效数字且符合整数要求)

(5)执行 `print("Hello", "World", sep='-', end='!') `后,输出结果是?

A .Hello World

B. Hello-World

C. Hello-World!

D. Hello World!

答:C

(6)以下哪个运算符用于判断两个对象是否是同一个对象(内存地址相同)?

A. ==(比较两对象值是否相等)

B. !=   (比较两对象值是否不相等)

C. is

D. in  (判断一个元素是否在某个序列中)

答:C

(7)执行 print(f"The result is {2 + 3}") ,输出结果是?

A. The result is {2 + 3}

B. The result is 5

C. The result is 2 + 3

D. 语法错误

答:B

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

```python
x = 5  
if x > 3:  
    print("A")  
elif x > 4:  
    print("B")  
else:  
    print("C")  
```

A. A

B. B

C. C

D. 无输出

答:A

(9)以下代码是否存在错误?

```python
A = 10  
if A > 5:  
    print("Big")  
elif A < 5:  
    print("Small")  
else  
    print("Medium")  
```

A. 无错误

B. 缩进错误

C. `else` 后缺少冒号

D. `elif` 条件错误

答:C(PS:else语句后必须加冒号)

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

```python
x = 0  
if x:  
    print("True")  
else:  
    print("False")  
```

A. True

B. False

C. 语法错误

D. 无输出

答:B

(11)以下代码的输出结果是?

```python
A = 10  
B = 20  
if A > 5 and B < 15:  
    print("条件1")  
elif A > 8 or B > 18:  
    print("条件2")  
else:  
    print("条件3")  
```

A. 条件 1

B. 条件 2

C. 条件 3

D. 无输出

答:B

(12)以下代码的输出结果是?

```python
A = 5  
B = 10  
if A > 3 or B / 0 > 0:  
    print("A")  
else:  
    print("B")  
```

A. A

B. B

C. 语法错误

D. 运行时错误

答:D

# 4.问答题

1)什么是 Python 的动态类型特性?举例说明。

答: Python 的动态类型是指没有规定定义变量类型时,解释器会自己对变量进行确定,并赋予不同类型值:

  例如:当x=5时,此时的x代表整数;

             当x=“小帅” 时,此时的x代表的又是字符串;

             当x=[xiao,shuai]时,此时x代表的则是列表

(2)如何将字符串 "123" 转换为整数?如果字符串为 "12a3" 会发生什么?

答:1)如何将字符串 "123" 转换为整数?:

 num = int("123")

 print(num)           # 输出 123

 print(type(num))  # 输出 <class 'int'>

        2)如果字符串为 "12a3" 会发生什么?:

  若为12a3会因出现字母a导致出现:“ ValueError: invalid literal for int() with base 10: '12a3' ”导致出错。

(3)比较 Python 中的动态类型与静态类型语言(如 Java)的优缺点。

答:动态:

优点:

代码简洁灵活:声明类型少,代码少

开发效率高:无需预先设计类型系统

适合数据处理

缺点:

运行时类型错误:类型问题运行时才暴露

代码可读性降低:缺乏类型声明

     静态:

优点:

编译时类型检查:提前发现错误

代码更可靠:类型明确

性能优化:执行效率高。

IDE 支持更好:类型提示更准确。

缺点:

代码冗长:需要声明类型

灵活性较低:修改类型应该多处代码调整。

性能较低

(4)简述 input() 函数和 eval() 函数的区别,并举例说明它们的应用场景。

答:

         input() 函数由输入读取用户输入内容并转成字符串,用于用户文本输入

         eval() 函数则将字符串作为 Python 表达式进行求值并得出答案,用于动态代码执行

(5)比较 == 运算符和 is 运算符的区别,并举例说明在什么情况下结果会不同。

答:

         == 运算符:比较两个对象的值是否相等

         is 运算符:比较两个对象是否为同一个内存地址

         不同:对象不同但赋值相同时

(6)逻辑运算符 and、or、not 的运算规则是什么?请分别举例说明。

答:

        and:两边表达式都为 True时返回 True,否则返回 False

        or:     两边表达式至少一个为 True 时返回 True,否则返回 False

        not:   对单个表达式取反,True 变 FalseFalse 变 True

(7)当使用 input() 函数获取用户输入的数字时,如何将其转换为整数类型?如果用户输入的不是数字,会发生什么?

答:

1.如何将输入转换为整数:

input() 函数返回的是字符串类型,即使输入的是数字。若要将其转换为整数,需使用 int() 函数

2.若输入非数字会发生什么:

如果输入的内容无法被解析为整数(如字母、小数等),int() 会抛出 ValueError 异常

(8)阅读以下代码,解释输出结果并说明原因。

```python
x = 5  
if x > 3:  
    print("X 大于3")  
if x > 4:  
    print("X 大于4")  
if x > 5:  
    print("X 大于5")  
```

答:

输出结果:x大于3

                  x大于4

原因:第一二个if语句都为ture,但是第三个不满足5大于5所以为False,则不会执行print

 ( PS:if语句是独立的,前一个满足后面的也会被检查(在此区分 if-elif-else结构语句))

(9)编写代码,计算三角形的三个角

**题目描述**

输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
$$
A=acos((a*a-b*b-c*c)/(-2*b*c)) \\
B=acos((b*b-a*a-c*c)/(-2*a*c)) \\
C=acos((c*c-b*b-a*a)/(-2*a*b)) \\
$$
其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角

**输入输出描述**

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三行,分别为A、B、C三个角的度数,结果保留两位小数

**示例**

> 输入:
>
> 1 1 6.5 1 6.5 2.5
>
> 输出:
>
> 15.26
>
> 90.00
>
> 74.74

**答:**```python
import math

x1,y1,x2,y2,x3,y3 = map(float, input().split(""))
a=((x1-x2)**2+(y1-y2)** 2)** 0.5
b=((x1-x3)**2+(y1-y3)** 2)** 0.5
C=((x2-x3)**2+(y2-y3)**2)** 0.5
cos=math.cos
A=a*cos((a*a-b*b-c*c)/(-2*b*c))
B=a*cos((b*b-a*a-c*c)/(-2*a*c))

C=a*cos((c*c-b*b-a*a)/(-2*a*b))
print(f"{A:.2f}")
print(f"{B:.2f}")
print(f"{c:.2f}")

```

(10)编写代码,解2×2线程方程

**题目描述**

如有一个2×2的线程方程组:
$$
ax+by=e \\
cx+dy=f
$$
你可以使用克莱姆法则解该线性方程:
$$
x=\frac{ed-bf}{ad-bc},y=\frac{af-ec}{ad-bc}
$$
其中 $ad-bc$ 为判别式,如果为零则输出无解

**输入输出描述**

输入a、b、c、d、e、f六个数据,数据之间用空格分隔

输出两行,第一行x的解,第二行y的解,保留一位小数

**示例1**

> 输入:
>
> 9.0 4.0 3.0 -5.0 -6.0 -21.0
>
> 输出:
>
> -2.0
>
> 3.0

**示例2**

> 输入:
>
> 1.0 2.0 2.0 4.0 4.0 5.0
>
> 输出:
>
> 无解

答:

```python
a, b, c, d, e, f = map(float, input().split(" “))
q=(ad-bc)
x=(ed-bf)/q
y=(af-ec)/q
if q==0:
print(“无解”)
else:
print(f”{x:.1f}“)
print(f”{y:.1f}")

```

Logo

GitCode AI社区是一款由 GitCode 团队打造的智能助手,AI大模型社区、提供国内外头部大模型及数据集服务。

更多推荐