NO IMAGE

今天去參加騰訊公司的面試,我投的後臺C 的崗位,今天就一面,總共80分鐘。(面試官問了50分鐘左右 30分鐘做個一道程式設計題)。

 

面試如下:

M (面試官)

W(我自己)

。。。。。。(代表我當時的回答,這些細節就不再寫出來了。)

 

進去之後把簡歷遞過去。

M:先做一下自我介紹。

W:。。。。。。。。。。(ps:自我介紹了大約2分鐘,剛開始感覺有點緊張)。

 

M:看你簡歷,你C 應該還不錯,先問你點C 方面的問題,C 的public繼承和private繼承有什麼區別?

W:。。。。。(ps:第一個這個簡單的問題,我感覺都沒答好)

 

M:你知道C 中可變引數怎麼實現的呢?

W:我沒有理解,可以再說下一下嗎

M:比如sprintf函式,是可變引數的,底層怎麼實現的呢?

W:(ps:這個真不知道,就說了不知道,心裡默想,前兩個問題答得都不好,這怎麼辦呢)

 

M:你說一下,C 的虛繼承吧

W:。。。。。,說完虛繼承,我又順便提了一個多型。

M:那你說一下,多型你怎麼理解的吧?

W:多型就是,真正執行的時候,才實現函式的動態繫結,。。。。。。。

M:什麼時候要把函式定義為虛擬函式呢?

W:有時候,解構函式需要定義為虛擬函式,。。。。。。。。(ps:當時應該把虛擬函式的底層實現再說一下的)

M:還有什麼情況下要用虛擬函式呢?

W:(ps:想了一下,真的沒有想出來,就說了不知道。)

 

M:你說一下,C 的const使用吧。

W:那我先說了一下,C語言中和C 中的const的區別,C語言中定義了一個變數,屬性只讀不可寫。C 是定義個一個常量。     Const還可以定義類的成員函式。。。。。。。。。

M:那你說一下,const定義類的成員函式,有幾種寫法呢?

W:我寫了一下,const voidfun() const; 和void fun() const;(ps:我也不知道這樣寫對不對)

M:這兩種寫法有什麼區別呢?

W:(ps:這個我真不知道,就給他說了指標常量和常量指標的區別)。

 

M:你說一下,資料結構中常用的幾種排序演算法?

W:常用有。。。。。。。。。。,我順便著把它們的複雜度說了一下。

M:那你說一下,快速排序的實現原理

W:。。。。。。

M:那你再說一下,堆排序的實現原理。

W:。。。。。。。。。

 

M:假如現在有10000個資料,要把10個最小的資料找出來,你說一下你的思路。

W:(ps:竊喜,因為在劍指offer上看過這道題目的解題方法)

M:那你計算一下時間複雜度

W:。。。。。。

 

M:現在有兩個單連結串列,是無序的,你把兩個連結串列中相同的元素找出來。

W:(ps:當時沒有理解題意,又問了一下他,會不會有重複的資料)

M:可以有重複的資料。

W:先把最笨的暴力匹配的演算法給他說了一下,時間複雜度為O(m*n)(ps:知道這樣肯定不行)

M:還有其他的思路嗎

W:(ps:想了一下,我也不知道最優解,就給他說了想法)。先把兩個連結串列排下序,然後定義兩個指標,再分別遍歷一下連結串列(ps:具體的細節,就不再說了)

 

M:Linux你熟悉嗎

W:還可以

M:就問,要想檢視系統網路的命令是什麼

W:我說ping,nestat,可以檢視系統開放的埠。。。。。。。。,經常用到。。。。

M:nestat命令,可以檢視到什麼資訊,比如埠有什麼狀態

W:(ps:這個我沒有注意過,就給他說不知道)

 

M:那你說一下,如何檢視Linux I/O的使用情況,有什麼命令

W:df,du命令(ps:又給他扯了下,檔案系統方面的東西,說了兩個命令的區別)

M:這個是檢視磁碟使用情況,不是檢視I/O的使用情況

W:(ps:這個真不知道了,就說了不知道。)

 

M:你說下程序和執行緒的區別吧

W:扯了一番(ps:感覺這裡,應該分點來說的)

M:執行緒怎麼實現同步?

W:。。。。。。。

M:程序的通訊方式有哪些?

W:。。。。。。。

M:那你寫一個管道的用法吧

W:是寫有名管道還是匿名管道呢

M:匿名管道。

W:就寫了父子程序通訊,(ps:這些東西,有點遺忘了,真寫的時候,一些細節就忘記了,寫的不全)

 

M:程序間會出現死鎖,怎麼可以避免?

W.。。。。。。。。

M:程序鎖有哪些?

W:pthread_mutex

M:還有其他的嗎?

W:(ps:我就知道這一個,就說只知道這一個)

M:那你寫一下與鎖有關的函式吧

W:pthread_mutex_initpthread_mutex_lock pthread_mutex_unlock pthread_mutex_trylock,接下來給他介紹了一下,這些函式的用法。。。。。。。。(ps:我也不知道有沒有寫錯,等會再看一下筆記吧)

 

 

M:mysql資料庫有沒有用過呢

W:使用過。。。。。。。

M:那你知道它有什麼搜尋引擎嗎

W:MyISAM InnoDB,接著說了兩者的區別。。。。。。。(ps:本想裝裝逼的說了兩者的區別,以及在什麼情況下使用哪個比較合適,但是,面試官一深問,就露餡了,逼也沒有裝成)

M:你說MyISAM支援索引,InnoDB不支援嗎

W:也支援,但是在查詢的時候,MyISAM效率比較高的。。。。。

M:你說MyISAM支援的索引,是怎麼實現的

W:(ps:雖然說看過書,但是也沒有看這麼細,這些東西還是不懂,就停頓了下)

M:沒事,你知道多少,就說多少

W:。。。。。。(ps:這些東西,看書不能只看個皮毛,面試官一問,就露餡了)

 

最後讓我寫了一個程式設計題目,是函式介面如下

int str_tok(char* strLine, char* strPep,char *ret[], int* num)

實際上就是實現C語言的strtok庫函式。

 

 

今天面試地點在浙大玉泉校區旁邊的黃龍飯店,技術面是單人面,非技術面是群面,看到那些非技術面的,一下進去14個人面試,感覺技術面還是挺幸運的。

總體來說,感覺面試問的挺基礎的,也沒有問專案方面的問題。

 

Ps:我在一旁寫程式設計題目的時候,另外一個同學進來面試,他的自我介紹是這樣的。

(我叫***,本科是上海交大的,現在在浙江大學計算機學院讀研究生,研二,研究方向是**,前段時間在阿里巴巴實習,現在已經拿到阿里offer了,不過我更願意去騰訊公司,更喜歡深圳那裡,接下來就和面試官在聊現在做的專案。。。。。。。。。。)

聽到這些,心裡一萬隻草泥馬奔騰而過,真牛逼呀,他和面試官在聊專案的時候,那些名詞,一個也聽不懂。自己還是默默的複習,準備下一場面試。

靜靜的等待一面的結果吧。。。。。。