阿里雲 2016 實習生一 二面

2021-07-10 15:56:22 字數 2447 閱讀 5539

前兩周分別接到了阿里雲兩輪**面試,總結記錄一下。

接到**,第一件事一般都是介紹一下自己。我一般都會說,熟悉常用的 linux 程式設計 api,熟悉 tpc/ip 協議,有一定python web 開發專案經歷。

一面主要是針對自己的專案問了一些問題,比如 shell 直譯器裡面為什麼會出現殭屍程序,問題很簡單,主要是父程序沒有 wait 子程序。

這輪在介紹完個人專案之後確是問了不少基礎的內容。

leader 首先問了常用的 linux 系統呼叫(畢竟我介紹自己熟悉常用的 linux 程式設計 api)

我:open ,read,write,fork,wait,waitpid,然後具體介紹了 waitpid 與 wait 的區別,waitpid 就等待某個具體的子程序給出了更多控制,還有就是非同步 wait ,將 waitpid 放在訊號處理函式裡面,能防止父程序阻塞。通過 fork 延伸,接著我又說了 ,tcp/ip 相關的函式,socket,bind,listen,accept 一連串。fork 完之後子程序處理請求,父程序繼續監聽請求。

leader 又問了出現.core檔案怎麼辦。

我:你是指出現 segment fault 嗎?一般出現 segment fault 都是指標越界,通過 gdb 可以檢視.core檔案,但我一般都只很簡單的設定斷點 gbd 進去,然後用 gdb 的nsp指令看相關具體變數的值,一步步排查錯誤。(實際上我一直都是這樣做的t_t)

程式異常退出時,核心會生成乙個core檔案(是記憶體映像以及除錯資訊)。可以通過使用gdb來檢視core檔案,指示出導致程式出錯的**所在的檔案和行數。可以通過alimit -c檢視系統設定的 core 檔案大小限制

接著問在c++ 程式中如何呼叫被c 編譯器編譯後的函式?

不知道是我沒聽清楚還是沒理解對面試官的意思,就只回答了,在標頭檔案中申明函式,cpp 檔案中定義函式。

回頭又想了一下,怎麼可能這麼簡單,面試官想知道的應該是使用extern "c"以及為什麼要加extern 「c」.

c++ 在過載函式時,為了區分過載的各個函式,通過把原函式名與引數資訊結合,產生乙個獨特的內部名字,這種技術叫做名字修飾(name mangling)。

c語言中沒有名字修飾(name mangling),因為c語言不支援函式過載。但是如果c++中含有c**,在編譯時c++編譯器對c**的函式也會進行名字修飾,函式名變了以後,將導致在c執行庫中找不到對應函式,發生鏈結錯誤。

為了防止c++編譯器對c**進行名字修飾,我們將c**用extern 「c」進行鏈結指定,告訴編譯器,在生成中間檔案時,不要對這部分**進行名字修飾,而是生成符合c規則的中間符號名。

接下來,又問了乙個 struct 和 class 的區別

這個沒有答得很好,導致給面試官的印象就是基礎很薄弱。。。

分以下所示兩種情況。

c的struct與c++的class的區別:struct只是作為一種複雜資料型別定義,不能用於物件導向程式設計。

c++中的struct和class的區別:對於成員預設訪問許可權以及繼承方式,class中預設的是private的,而struct中則是public的。class還可以用於表示模板型別,struct則不行。cc

在模版中,型別引數前面可以使用class或typename,如果使用struct,則含義不同,struct後面跟的是「non-type template parameter」,而class或typename後面跟的是型別引數。

棧空間不夠用怎麼辦?

這個也沒答好,就直說了自己還沒有遇到故這種情況,,,

網上查了一些資料,用ulimit -a可以檢視棧空間大小,ubuntu 上是 8192 kb

如果定義大陣列的情況下,那就需要修改預設的棧大小,linux 上使用指令ulimit -s 32768可以將當前使用者的棧大小設定為32m bytes。

leader:說說make 偽目標。

這個也沒遇到過,,,,,感覺要跪

在網上查了一些資料,所謂偽目標就是這樣乙個目標,它不代表乙個真正的檔名,在執行make時可以指定這個目標來執行其所在規則定義的命令,有時我們將乙個偽目標成為標籤。

拿clean舉例,如果make完成後,自己另外定義乙個名叫clean的檔案,再執行make clean時,將不會執行rm命令。

為了避免出現這個問題,需要.phony: clean

參考:

接下來 leader 就開始跟我談人生了,覺得我基礎還有待提高,看我簡歷說我數學專業的,拿過很多獎,專業排名也不錯,算是比較優秀的,建議我讀研深造,,,,,,最後跟他談了二十分鐘的我不想讀研的原因以及一些人生規劃,還問了一些關於阿里雲主要有哪些業務的問題就結束了二面。

2016阿里雲實習面經

本文僅為博主的個人面試經歷,如果以下內容對您有幫助的話,請不要忘記請我吃雞腿 05 11 2016,新增資料推薦部分。一面加起來一共30 分鐘,主要是圍繞專案問一些問題。二面主要是乙個實力很強的中年男子,按照我寫的簡歷一行一行問,大概持續70min。三面依舊是技術面,時間大概在30 分鐘,高冷的聲線...

記實習生電面

面試進行了53分鐘,大概問了一下一些問題 1 關於多執行緒機制與斷點續傳的原理。執行緒與程序的區別。專案中線程個數應該怎麼設定,要考慮那些因素?2 說一下c語言中的字串處理函式,我答了strlen 求字串長度,strcpy 字串拷貝函式,他又問strpy 進行字串拷貝時可能出現那些問題?字串拷貝函式...

華為CBU技術研究實習生一二面涼經

筆試三道題a了兩道100 最後一題沒時間寫了 一 一面技術面 5.18 1.自我介紹 2.講自己的 3.寫了一道程式設計題 題目 給乙個陣列和乙個目標數字,刪除陣列中所有與目標相同的數字,返回新陣列的長度,不要求保持原來順序 回答 由於比較緊張,只想出來一種從左到右掃瞄然後記錄相同的個數作為偏移量,...