1.技術面試題
(1)TCP與UDP的區別是什么?
答:
TCP(傳輸控制協議):面向連接、可靠傳輸(數據完整有序)、流量控制、擁塞控制,適用于文件傳輸、網頁瀏覽等場景。
UDP(用戶數據報協議):無連接、不可靠傳輸(可能丟包亂序)、低延遲,適用于視頻流、在線游戲等實時應用。
(2)DHCP和DNS的作用是什么?
答:
DHCP:自動分配IP地址、子網掩碼、網關等網絡參數,簡化設備入網配置。
DNS:可以將域名解析為IP地址,實現網絡資源定位。
(3)簡述 Linux 文件系統的目錄結構,其中/boot、/var、/usr目錄的作用分別是什么?
答:
/boot:存放系統啟動文件(如內核、引導程序)。
/var:存儲動態數據(日志、郵件、緩存)。
/usr:存放用戶應用程序和只讀數據(如軟件庫、文檔)
(4)Linux系統突然無法訪問外網,但內網通信正常。請列出至少 5 個可能的故障點及排查步驟。
答:
默認網關失效:ip route | grep default
檢查網關配置,ping 網關IP
測試連通性。
DNS解析失敗:nslookup google.com
驗證DNS服務。
防火墻攔截:iptables -L
檢查OUTPUT鏈規則。
路由表錯誤:route -n
查看路由條目。
外網接口故障:ifconfig eth0
檢查外網網卡狀態及IP。
2.HR面試題
(1)假如你成功入職,卻發現直屬領導能力遠不如你,你會如何與他共事?
答:
我會首先調整心態,認識到管理能力與技術專長是不同維度的競爭力。在實際工作中,我會尊重組織架構的權威性,主動理解領導的管理視角和工作重點。通過定期的工作匯報和私下溝通,我會嘗試將技術建議轉化為對業務目標有直接幫助的方案。
(2)你簡歷上的經歷并不突出,我們為什么要選你?
答:
我的價值在于將普通經歷轉化為實際成果的能力。在之前的項目中,我善于發現流程中的優化點,比如將常規測試流程自動化后為團隊節省40%的時間。面對技術挑戰時,我展現出快速學習能力,曾用三天時間掌握新技術解決團隊卡頓兩周的瓶頸問題。更重要的是,我具備將技術能力轉化為業務價值的意識,在XX項目中通過界面優化使客戶轉化率提升23%。作為團隊協作者,我在項目危機時主動協調多方資源確保交付。這些能力保證我能快速適應環境,在普通崗位上創造超預期價值。
(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
**答:**B
(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
(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)以下代碼的輸出結果是?
x = 5
if x > 3: print("A")
elif x > 4: print("B")
else: print("C")
A. A
B. B
C. C
D. 無輸出
答: A
(9)以下代碼是否存在錯誤?
A = 10
if A > 5: print("Big")
elif A < 5: print("Small")
else print("Medium")
A. 無錯誤
B. 縮進錯誤
C. else
后缺少冒號
D. elif
條件錯誤
答: C
(10)以下代碼的輸出結果是?
x = 0
if x: print("True")
else: print("False")
A. True
B. False
C. 語法錯誤
D. 無輸出
**答:**B
(11)以下代碼的輸出結果是?
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)以下代碼的輸出結果是?
A = 5
B = 10
if A > 3 or B / 0 > 0: print("A")
else: print("B")
A. A
B. B
C. 語法錯誤
D. 運行時錯誤
**答:**A
4.問答題
(1)什么是 Python 的動態類型特性?舉例說明。
**答:**變量類型在運行時確定,無需顯式聲明
a = 10 # a為整數
a = "文本" # a變為字符串(靜態類型語言會報錯)
(2)如何將字符串 “123” 轉換為整數?如果字符串為 “12a3” 會發生什么?
答: 轉換:int("123")
→ 整數123
會發生異常:int("12a3")
拋出ValueError
(含非數字字符)
(3)比較 Python 中的動態類型與靜態類型語言(如 Java)的優缺點。
答: python是動態的,開發速度較快,代碼比較簡潔,但是解釋執行較慢
Java是靜態的,需要編譯聲明,編譯優化快,但是類型聲明冗長
(4)簡述 input() 函數和 eval() 函數的區別,并舉例說明它們的應用場景。
答:input():返回用戶輸入的原始字符串,如age = input("年齡:")
→ age
為字符串"18"
。
eval():執行字符串中的Python表達式,如result = eval("2+3 * 4")
→ result=14
。
(5)比較 == 運算符和 is 運算符的區別,并舉例說明在什么情況下結果會不同。
答:
==:值相等比較
is:內存地址相同性比較
a = [1,2]; b = [1,2]; c = a
print(a == b) # True(值相同)
print(a is b) # False(不同對象)
print(a is c) # True(同一對象)
(6)邏輯運算符 and、or、not 的運算規則是什么?請分別舉例說明。
答:
運算符 | 規則 | 示例 |
---|---|---|
and | 全真為真 | True and False → False |
or | 一真即真 | True or False → True |
not | 取反 | not True → False |
(7)當使用 input() 函數獲取用戶輸入的數字時,如何將其轉換為整數類型?如果用戶輸入的不是數字,會發生什么?
答: 用 int(input()) 轉換,如 num = int(input(“輸入數字:”)) ;若輸入非數字,會拋出 ValueError
(8)閱讀以下代碼,解釋輸出結果并說明原因。
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條件判斷當滿足if的條件時就會執行后面的打印結果
(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=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=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=((x2-x3)**2+(y2-y3)**2)**0.5
b=((x1-x3)**2+(y1-y3)**2)**0.5
c=((x1-x2)**2+(y1-y2)**2)**0.5
A = math.degrees(math.acos((b**2 + c**2 - a**2) / (2 * b * c)))
B = math.degrees(math.acos((a**2 + c**2 - b**2) / (2 * a * c)))
C = math.degrees(math.acos((a**2 + b**2 - c**2) / (2 * a * b)))
print(f"{A:.2f}")
print(f"{B:.2f}")
print(f"{C:.2f}")
(10)編寫代碼,解2×2線程方程
題目描述
如有一個2×2的線程方程組:
ax+by=ecx+dy=f
ax+by=e \\
cx+dy=f
ax+by=ecx+dy=f
你可以使用克萊姆法則解該線性方程:
x=ed?bfad?bc,y=af?ecad?bc
x=\frac{ed-bf}{ad-bc},y=\frac{af-ec}{ad-bc}
x=ad?bced?bf?,y=ad?bcaf?ec?
其中 ad?bcad-bcad?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())
flag=a*d-b*c
if flag==0:print("無解")
else:x = (e * d - b * f) / (a * d - b * c)y = (a * f - e * c) / (a * d - b * c)print(f"{x:.1f}")print(f"{y:.1f}")