# 1.技術面試題
**(1)TCP與UDP的區別是什么?**
**答:TCP 是 “可靠但較慢” 的協議,適合對數據完整性要求高的場景;UDP 是 “快速但不可靠” 的協議,適合對實時性要求高的場景。兩者互補,共同支撐了互聯網的多樣化應用。
**(2)DHCP和DNS的作用是什么?**
**答:DHCP 的功能是自動為網絡中的設備分配IP地址及其他網絡配置信息,避免手動設置的繁瑣和錯誤,實現網絡設備的即插即用。DNS 的功能是將易記的域名轉換為計算機能識別的IP地址,是互聯網的 “地址簿”。
**(3)簡述 Linux 文件系統的目錄結構,其中/boot、/var、/usr目錄的作用分別是什么?**
**答:/boot:系統啟動的基石,包含內核和引導程序。/var:動態數據的倉庫,記錄系統運行狀態和臨時數據。/usr:用戶應用的家園,存放軟件和共享資源。
**(4)Linux系統突然無法訪問外網,但內網通信正常。請列出至少 5 個可能的故障點及排查步驟。**
**答:1網關配置問題2DNS服務器解析出現異常,3防火墻規則阻止了對外網的訪問,4NAT 配置錯誤 私有與共有地址的轉換出現錯誤,5外網接口或服務器故障。
# 2.HR面試題
**(1)假如你成功入職,卻發現直屬領導能力遠不如你,你會如何與他共事?**
**答:首先會提醒自己:領導的核心職責是 “帶團隊達成目標”,而非單純比拼某一領域的專業能力。可能他在資源對接、跨部門協調、風險把控等方面有我不具備的經驗。
**(2)你簡歷上的經歷并不突出,我們為什么要選你?**
**答:我有把小事做透,可以快速解決崗位上的具體問題,我對這個崗位有清晰的認知和強烈的適配性,我有 “快速補位” 的學習能力,能適應崗位的成長需求
**(3)你還面試了哪些公司?**
**答:目前我確實在同步接觸幾家公司,主要集中在與目標公司同行業或相關領域,例如:云原生方面有一定影響力的公司。選擇這個公司的核心原因,是它們的業務領域和崗位需求,對我而言,求職的核心是找到 “專業方向契合、能持續成長” 的平臺,所以在選擇時會更看重崗位與自身能力的匹配度、團隊的技術氛圍,以及公司的長期發展理念。如果能有幸加入貴公司,我會把精力完全投入到團隊工作中。
**(4)如果你發現公司某項業務存在合規風險,但領導暗示‘別多管閑事’,你會怎么做?**
**答:面對這種情況,我會堅持 “合規是底線” 的原則,但用更理性、建設性的方式推動問題解決,避免激化矛盾。
# 3.選擇題
**(1)以下哪個是合法的 Python 變量名?**
A. `2var`
B. `_var`
C. `var@1`
D. `var-1`
**答:b #變量名不以數字開頭且沒有特殊字符
**(2)表達式 `True + 2` 的結果是?**
A.`True`
B. `3`
C. `2`
D. `TypeError`
**答:?d #不是字符型,邏輯型加數值會出報錯
**(3)以下哪個表達式會引發錯誤?**
A.`"1" + "2"`
B. `[1, 2] + [3, 4]`
C. `(1, 2) + (3, 4)`
D. `{1, 2} + {3, 4}`
**答:?d # 集合不能用 + 運算符
**(4)以下哪個是將字符串轉換為整數的正確方法?**
A. `str(5)`
B. `int("5")`
C. `float("5")`
D. `bool("5")`
**答:?b #就int()是轉換為整型
**(5)執行 `print("Hello", "World", sep='-', end='!') `后,輸出結果是?**
A .Hello World
B. Hello-World
C. Hello-World!
D. Hello World!
**答:?c #sep='-‘是使用 - 分隔參數,end=’!'是以 ! 結尾
**(6)以下哪個運算符用于判斷兩個對象是否是同一個對象(內存地址相同)?**
A. ==
B. !=
C. is
D. in
**答:c # ==運算符是比較值是否相同 ,!=是不相等,is是兩個對象是否為同一個實例即內存地址是否相同,in是判斷 元素是否在 存在于容器中。
**(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 #使用了f-string格式 {}中的表達式被求值
**(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 # x=5 在 if中x>3條件成立 輸出 print(“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 #else后必須要有 :
**(10)以下代碼的輸出結果是?**
```python
x = 0 ?
if x: ?
print("True") ?
else: ?
print("False") ?
```
A. True
B. False
C. 語法錯誤
D. 無輸出
**答:B #x的值為 0 if判斷條件不成立 執行 else 輸出print("False’)
**(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 #:第一個 if 中 B<15條件不成立 進入 elif中 A>8 or B>18 成立 輸出 print(“條件2”)
**(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 #if條件A>3 or B/0>0 中 0被當被除數了
**(1)什么是 Python 的動態類型特性?舉例說明。**
**答:在 Python 中,動態類型是其核心特性之一,它允許變量在運行時被賦予不同類型的值,而無需在代碼中預先聲明變量的類型。
就像一個裝液體的容器 ,你可以裝酒,裝飲料,裝白開水,當它裝不同東西時它的類型也會跟著一起改變。
**(2)如何將字符串 "123" 轉換為整數?如果字符串為 "12a3" 會發生什么?**
**答:?直接使用 int(),就可以轉換為整型。如果字符串為“12a3”的話 會拋出ValueError這個報錯 ,應為int()只能處理純數字字符。
處理過程如:a=int(“123”)
**(3)比較 Python 中的動態類型與靜態類型語言(如 Java)的優缺點。**
**答:python中的動態類型 無需類型聲明,變量類型由賦值所決定。優點是:代碼簡潔,開發效率高,適合動態場景。缺點:類型不匹配問題可能在運行時才暴露 會增加調試成本風險,代碼可讀性降低,代碼可讀性降低。
Java的靜態類型語言必須顯式聲明變量類型。優點是:編譯的時候就有錯誤檢查,代碼可維護性強,靜態類型信息有助于編譯器優化。缺點:代碼冗長,靈活性較差,學習門檻較高。
**(4)簡述 input() 函數和 eval() 函數的區別,并舉例說明它們的應用場景。**
**答:** input()是用于讀取用戶輸入的原始字符串,不做任何解析。應用場景為:接收字符串輸入如:text=input(),手動的將輸入的字符串轉換為別的類型 如num=int(input())。
eval()將字符串作為 Python 表達式解析并執行,返回表達式的計算結果。應用場景為:計算表達式如eval(“1+2+3”) 結果為int 的6,
解析簡單數據結構如:list=eval(“[1, 2, 3]”) 就是將字符串轉換為列表 【1,2,3】
**(5)比較 == 運算符和 is 運算符的區別,并舉例說明在什么情況下結果會不同。**
**答:==運算符比較的是兩個對象的值 ,適用于需要比較值的場景。
is運算符比較兩個對象是否為同一個實例,適用于需要判斷對象身份的場景。
它倆在值相同在對象不同的場景下 前者返回True 后者返回false
**(6)邏輯運算符 and、or、not 的運算規則是什么?請分別舉例說明。**
**答:and 的運算規則是 兩邊都為 真 返回結果才為真,若只要一邊為假則都為假。如:print(True and True)#為真 其余都為假
or的運算規則是兩邊只要一邊為真 返回結果就為真,若兩邊都為假 返回結果才為假。print(False and False)#為假 其余都為真
not的運算規則是對結果取反 真變假 假變真。 如:print(not True)#輸出 False print(not False)#輸出True
**(7)當使用 input() 函數獲取用戶輸入的數字時,如何將其轉換為整數類型?如果用戶輸入的不是數字,會發生什么?**
**答:?使用 int()函數 進行手動類型轉換 如:num=int(input())。若格式 為 num=input()則會變成字符串存儲 ,若這時還進行 int()轉換 則會拋出ValueError 異常。
**(8)閱讀以下代碼,解釋輸出結果并說明原因。**
```python
x = 5 ?
if x > 3: ?
print("X 大于3") ?
if x > 4: ?
print("X 大于4") ?
if x > 5: ?
print("X 大于5") ?
```
**答:三個if判斷 輸出結果為:
x大于3
x大于4
**(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
**答:
import math
x1,y1,x2,y2,x3,y3=map(float,input().split(" "))
a=math.hypot(x3-x2,y3-y2)
b=math.hypot(x3-x1,y3-y1)
c=math.hypot(x2-x1,y2-y1)
A=math.degrees(math.acos((aa-bb-cc)//(-2bc)))
B=math.degrees(math.acos((bb-aa-cc)//(-2ac)))
C=math.degrees(math.acos((cc-aa-bb)//(-2a*b)))
print(f"A的角度為{A:.2F}B角度為{B:.2F}C的角度為{C:.2F}")
```python
# 在此寫入你的代碼
```
**(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
>
> 輸出:
>
> 無解
**答:
a,b,c,d,e,f=map(float,input().split(" “))
if not(ad-bc):
print(“wujie”)
else:
x=(ed-bf)/(ad-bc)
y=(af-ec)/(ad-bc)
print(f"x的解為:{x:.2f}”)
print(f"y的解為:{y:.2f}"
```python
#在此寫入你的代碼
```