網際網路面試筆試題

才智咖 人氣:2.88W

話說,知己知彼才能百戰百勝。想打贏一場漂亮的求職戰,首先你要了解一下“對手”的招數。下面是達妹為大家收集的一些著名網際網路企業的面試及筆試試題!大家不妨在去求職之前提前準備一下哦!

網際網路面試筆試題

rn的作用

應該需要區分extern在C語言中和C++語言中的作用,C語言中extern宣告的函式和變數可以被該檔案外部模組引用,C++語言中除了該作用還可以宣告extern “C”宣告一段程式碼編譯連線的方法為C語言的方法。

(a) extern是C/C++語言中宣告函式和全域性變數作用範圍(可見性)的關鍵字,該關鍵字告訴編譯器,其宣告的函式和變數在本模組或其他模組中使用(通常,在模組的標頭檔案中對本模組提供給其它模組引用的函式和全域性變數以關鍵字extern宣告。)

(b) 被extern “C”修飾的變數和函式是按照C語言的方式編譯和連結的。(C語言不支援函式過載所以函式的C++和C的編譯方式不同,這一句的作用就是實現C++和C及其他語言混合程式設計)

tr()函式的作用

strstr()函式的原型一般為extern char * strstr(const char *src , const char *dest) , 其作用就是尋找目標字串在源字串中第一次出現的位置。

ows執行緒優先順序問題( 程序和執行緒的區別和聯絡 )

這個概念可能面試、筆試的時候不是很適合,畢竟平臺相關,大多數公司可能更多的傾向於linux開發,這個問題更換為程序和執行緒的區別更好,這個是筆試,面試常見的`知識考查。

(a)通常一個程序可以包含若干個執行緒,它們可以利用程序所擁有的資源。程序是系統進行資源分配和排程的一個獨立單位,執行緒是程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒自己基本不擁有系統資源,只擁有一些在執行中必不可少的資源(如程式計數器,一組暫存器和棧),執行緒可與同屬於一個程序的其他執行緒共享程序所擁有的全部資源。

執行緒和程序區別歸納:

地址空間和其他資源:程序間互相獨立,同一個程序的各執行緒共享。

通訊:程序間通訊IPC,執行緒間可以直接讀寫程序序資料段(如全域性變數)來進行通訊-需要進行同步和互斥的輔助。

排程和切換:執行緒上下文切換比程序上下文切換快速,高效。

多執行緒的OS中,程序不是一個可執行的實體。

4.多方法交換x與y的值

5.指標的自加與引用

6.前置++與後置++

前置++和後置++我覺得一個比較重要的問題是C++中過載兩個操作符的時候如何區別:區分前置和後置 函式的引數有一個 (函式過載),後置++有一個(int)引數。

ne的作用

inline函式不像正常函式在呼叫時存在壓棧和call的操作,它會把程式程式碼直接嵌入到呼叫程式碼段中,也就是說使用inline函式會增大二進位制程式的體積,但是會使執行速度加快。

同時,編譯期間可以對引數進行強型別的檢查,這是inline優於巨集的一個方面。

8.二維陣列的表示

ef的作用

條件編譯的語法,一般情況下,源程式中所有的行都參加編譯。但是有時希望對其中一部分內容只在滿足一定條件才進行編譯,也就是對一部分內容指定編譯的條件,這就是“條件編譯”。有時,希望當滿足某條件時對一組語句進行編譯,而當條件不滿足時則編譯另一組語句。

演算法

字串匹配的高階演算法

11.函式呼叫方式

12.過載函式

函式過載是指在同一作用域內,可以有一組具有相同函式名,不同引數列表的函式,這組函式被稱為過載函式。不能利用返回型別進行過載!類中函式const和非const可以進行過載,其實原理是利用this指標的型別是const和非const進行過載,其實原理就是引數型別不同,const指標orconst引用呼叫的為const版本的函式~更多函式過載的知識。

13.建構函式和解構函式

虛擬解構函式的使用場景是指向父類的指標實則為子類指標,呼叫的時候使用虛擬解構函式,防止部分記憶體洩露。

建構函式不能宣告為虛擬函式,因為物件的虛擬函式表的指標其實是在建構函式內編譯器新增完成的程式碼,所以在建構函式執行之前無法訪問到虛擬函式表的。

14.合併兩個有序連結串列

類似歸併排序,兩個指標歸併即可。

15.100億條記錄的文字檔案,取出重複數最多的前10條

類似top k演算法,無法全部讀入記憶體的top k演算法是利用容量為k的最大堆,達到線性時間的top k演算法。

首先利用hash table預處理每個元素出現的次數,然後利用次數執行top k演算法。