2011深信服校園招聘筆試面試

來源:互聯網
上載者:User

http://blog.sina.com.cn/s/blog_48c9576b0100me1y.html

9月26號深信服校園招聘筆試

都說深信服的題又偏又難,果然不假。不過還有有很多值得多思考的題。

這套題共有10頁,涵蓋了作業系統,網路,組譯工具,演算法和資料結構,題還是很有難度的。但是作業系統,網路,組譯工具都不是很多,都是1-2道題的樣子,但是都很偏,不好做。

以下是個人感覺比較不錯的題:

 

程式填空:

快排的實現

不限精度的整數(大數)加法,鏈表實現(比較不錯的題)

 

演算法題:

二分尋找實現

鏈表逆置

鏈表排序

 

問答:

在X86平台下,strcpy易出錯原因

對於一個未初始化的對象,為什麼調用其虛函數會出錯,但調用其非虛函數不會有錯

strcat的效率問題,更好的解決方案。

小數點的第60位是多少

 

輸出結果填空:

第一題

struct S{

void * operator new(unsigned int size, void* p, int i)

{

((S*)p)->i = i;

return p;

}

int i;

};

S ss;

S* pss = new(&ss, 10)S();

 

int main()

{

cout<<ss.i<<"  "<<pss->i<<endl;

S* pss2 = new(&ss,20)S;

cout<<ss.i<<"  "<<pss2->i<<endl;

return 0;

}

輸出:0  0

              20  20

 

第二題

class A

{

public:

void f(int)

{

cout<<"A::f(int)"<<endl;

}

void f(double)

{

cout<<"A::f(double)"<<endl;

}

virtual void g()

{

cout<<"A::g(void)"<<endl;

}

};

class B:public A

{

public:

void f(double)

{

cout<<"B::f(double)"<<endl;

}

void g()

{

cout<<"B::g()"<<endl;

}

};

int main()

{

A* pa = new B;

pa->f(1);

pa->g();

B* pb = (B*)pa;

pb->f(2);

pb->g();

}

輸出:

A::f(int)

B::g()

B::f(double)

B::g()

 

找錯題:

const int b=0;

int * const p4 = &b;         (有錯,不能將const int型賦給int型指標類型)

*p4=10;

cout<<*p4<<endl;

 

 

一面:

         昨天9月28日收到深信服的面試通知,29號上午11點,我了個去啊,我自己都感覺自己做的很差,沒想到還能去面試,不過估計就是去打醬油吧,呵呵,現在淪為醬油男了。

         本來準備10點坐車,但是不巧的是,早上喝了點早餐奶,有點想啦肚子,K,衝進廁所。還好,坐上車時10:15,應該不算晚。到了金融基地,2棟4樓。環境還是挺好的,我看有的員工在休息區在熱烈的討論著什麼,挺好的氣氛。等了一會就過來一個挺年輕的面試官,我們到一個小桌那開始了面試。沒有自我介紹,挺讓我意外的,不過後邊讓我很糾結啊。

          第一個問題就讓哥鬱悶了,說說Dijkstra演算法,我暈,這個圖演算法都問,我直接如實相告,自己學過忘記了。下馬威啊。第二個題關於平衡樹的調整,還好就是一個很簡單的判斷是不是平衡樹。第三個是C++中對類的靜態成員函數的理解,這個挺簡單,有過開發經驗的都應該清楚吧。第四題是C中printf函數中,可以有多個輸出參數,是怎麼實現的。鬱悶這個 也不會,這個實在是不清楚。然後看我簡曆上熟悉STL,就問vector這個容器,當它空間不足的時候是怎麼處理的,哈哈這個不難,我就巴拉巴拉的一陣忽悠,然後扯到STL演算法中的sort演算法,我一陣忽悠,我說Sort函數我看過源碼(小小的漏下,哥也是有過深入學習的,哈哈),是用類似快排演算法實現的,但不是標準的快排,是快排的一中改進,效果很好。然後就問我快排的實現,我就一陣的啪啦啪啦的講解。後來問到我對socket編程熟不熟,我說只是有過簡單的接觸,它問TCP協議用什麼機制保證資料的可靠性,我就大致說了使用ack驗證這個,估計不會很正確,這個回去要好好的查查。然後問我linux編程熟不熟,我說還行,問linux的非同步機制是什麼,答曰訊號量,同步機制,答曰訊號,問linux內建的同步機制是什麼,答曰不知道。然後處理序間通訊的方式,答曰管道,有名管道,訊息佇列和共用記憶體,還有同步訊號,非同步訊號量。然後給我寫了一個fork函數,問我的作用,我就答:建立子進程,返回int值,當返回0時,說明在子進程中,傳回值大於0的時候,在父進程中執行,當飯後小於0時,表示出錯。然後問我wait函數的作用,答曰等待子結束,防止殭屍進程出現,然後問我殭屍進程怎麼預防,我就說設定SIGCHLD訊號調用wait或waitpid函數進行處理,或則設定訊號直接忽略掉。然後看我簡曆上有一個項目是網路輿情檢測,就問了項目,我一陣的忽悠,不過在忽悠的過程中,有很多實現細節他都進行了發問,比如我說到我對分詞的關鍵技術進行改進的時候,他會問怎麼改進,我就說我們加了新詞模組,提取網路新詞。還有一些細節問題,感覺他還是懂這方面的。等我介紹完了,他笑著說,我們也是做網路監測的,我去,那我不是剛才在班門弄斧嗎。然後我就給他解釋下,我們這個項目是公安局網監的,側重的是網頁上已經形成的文本詳細,而貴公司可能更側重網路監測吧,他笑笑說,我們也做文本的監測。我暈。在問完我之後,他不停的在我的評價表上寫著什麼,大約謝了快一分鐘。然後讓我等會。他拿著我的評價表出去了有3分鐘,然後回來說:明天人力資源那邊會給我打電話,安排我方便的一個時間進行複試。然後就出來了。就這樣結束了面試。

 

總結問到的題包括(有幾個忘記了,不太全):

Dijkstra演算法  (哥心中的痛啊,這就是下馬威。)

平衡樹

C++中類的靜態成員函數的理解

printf函數中,可以有多個參數,是怎麼實現的          

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.