常見問題總結

weixin_33907511發表於2017-08-06

作者:TK-Xiong

連結:https://www.nowcoder.com/discuss/3991

來源:牛客網

C/C++相關

1.虛析構、模板 和 巨集

2.虛擬函式實現機制

(是每個類用了一個虛表,每個類的物件用了一個虛指標指向這個表)

3.vector與list的區別,map是如何實現的(RBTree),查詢效率是多少(logn)

區別是…一個是連續空間,一個是指標串起來的…

Map的實現是紅黑樹RBTree

查詢效率是logn

4.extern關鍵字有什麼用?

標識變數定義在其他檔案

5.malloc和new的區別,能否malloc(1.2G)

malloc只分配空間不初始化,new既分配空間也初始化。可以。

6.多型性都有哪些?

靜態多型和動態多型。

靜態多型是函式過載

動態多型是虛擬函式

7.動態繫結怎麼實現?

基類的指標或引用呼叫虛擬函式的時候發生動態繫結。

如果實際指向的是派生類的物件,就呼叫派生類的函式,如果是基類的,則呼叫基類的。

8.型別轉換有哪些?(四種型別轉換,分別舉例說明)

四種。看部落格。

9.操作符過載(+操作符),具體如何去定義?(讓把操作符過載函式原型說一遍)

10.記憶體對齊的原則?(原則敘述了一下並舉例說明)

11.模版怎麼實現?

12.指標和const的用法?(就是四種情況說了一下)

13.虛擬函式、純虛擬函式、虛擬函式與解構函式?(純虛擬函式如何定義,為什麼解構函式要定義成

虛擬函式)

14.行內函數(講了一下行內函數的優點以及和巨集定義的區別)

15.const和typedef(主要講了const的用處,有那些優點)

16.排序演算法有哪些?快速排序怎麼實現的?最好時間複雜度,平均時間複雜度

17.連結指示:extern “C”(作用)

18.c語言和c++有什麼區別?(大體講了 一下,繼承、多型、封裝、異常處理等)

19.qt類中的一些繼承關係?

20.qt的訊號與槽機制?

21.qt有那些類,控制元件?

22.plc是個什麼玩意?

23.strcpy函式的編寫?(這個函式很熟悉,後來阿里校招面試也讓現場編寫了)

24.資料結構中二叉樹的非遞迴遍歷?(現場畫圖舉例講解的,所以大家面試的時候儘量多

動筆)

25.c++中四種型別轉換機制?

26.繼承機制中物件之間是如何轉換的?

27.繼承機制中引用和指標之間如何轉換?

28.虛擬函式,虛擬函式表裡面記憶體如何分配?(這個考前看過了,答的還不錯)

29.如何實現只能動態分配類物件,不能定義類物件?(這個牛客上的題目,我把如何只能

動態分配和只能靜態分配都講了一下)

30.stl有哪些容器,對比vector和set?

31.紅黑樹的定義和解釋?

32.const關鍵字的作用?(const成員函式,函式傳遞,和define的區別)

33.靜態成員函式和資料成員有什麼意義?

34.模版特化的概念,為什麼特化?

35.explicit是幹什麼用的?

36.strcpy返回型別是幹嘛用的?

重複拷貝

37.記憶體溢位有那些因素?

(1)使用非型別安全(non-type-safe)的語言如C/C++等。

(2)以不可靠的方式存取或者複製記憶體緩衝區。

(3)編譯器設定的記憶體緩衝區太靠近關鍵資料結構。

38.new與malloc的區別,delet和free的區別?

39.為什麼要用static_cast轉換而不用c語言中的轉換?

Static_cast有型別檢查,更安全

40.異常機制是怎麼回事?

41.迭代器刪除元素的會發生什麼?

迭代器可能失效?

42.必須在建構函式初始化式裡進行初始化的資料成員有哪些?

43.類的封裝:private,protected,public

44.auto_ptr類:

linux以及作業系統相關

1記憶體池實現

2程式間通訊機制

3 Linux ps命令,以及看記憶體當前使用狀態的命令

4程式與執行緒的區別,共享的資料

5程式的記憶體空間

6.程式和執行緒的區別。

7.死鎖的必要條件,怎麼處理死鎖。

8. Window記憶體管理方式:段儲存,頁儲存,段頁儲存。

9.程式的幾種狀態。

10. IPC幾種通訊方式。

11.什麼是虛擬記憶體。

12.虛擬地址、邏輯地址、線性地址、實體地址的區別。

計算機網路相關

1 TCP三次握手、四次揮手

2 TCP滑動視窗與回退N針協議。

3 TCP擁塞控制機制

4 socket模型

5. OSI與TCP/IP各層的結構與功能,都有哪些協議。

6. TCP與UDP的區別。

7. TCP報文結構。

8. TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的作用。

9. Http的報文結構。

10. Http的狀態碼含義。

11. Http request的幾種型別。

12. Http1.1和Http1.0的區別

13. Http怎麼處理長連線。

16. Cookie與Session的作用於原理。

17.電腦上訪問一個網頁,整個過程是怎麼樣的:DNS、HTTP、TCP、OSPF、IP、ARP。

18. Ping的整個過程。ICMP報文是什麼。

19. C/S模式下使用socket通訊,幾個關鍵函式。

20. IP地址分類。

21.路由器與交換機區別。

網路其實大體分為兩塊,一個TCP協議,一個HTTP協議,只要把這兩塊以及相關協議搞清楚,一般問題不大。

其他

1紅黑樹的性質以及插入和刪除

4卡特蘭數以及公式推導(應多很多)

9 C++、java和PHP有什麼本質區別

相關文章