研發類C 筆試題目

2021-09-30 12:00:03 字數 2778 閱讀 2286

1、vector和list的區別

區別:1)vector的物件實在一塊連續的記憶體空間上,而list的物件可以不在來連續的記憶體空間上。

2)vector元素的隨機訪問的效率很高,插入和刪除效率較低,當vector儲存的物件的構造較為複雜時,移動vector的元素需要呼叫物件的拷貝建構函式,效率因而很低。vector是離散儲存的,訪問元素時需要從頭或者尾部開始時進行遍歷(不能隨機訪問),刪除和插入元素相比vector的效率高,不需要移動元素。vector的大小擴張通常是2倍的擴充套件。

3)vector是單向的,list是雙向的。

4)vector適用:物件數量變化少,簡單物件,隨機訪問元素頻繁;list適用:物件數量變化大,物件複雜,插入和刪除頻繁。

2、c++中const的一些常用方法

1)定義乙個唯讀的變數。(而非乙個常量)

2)修飾函式的引數。當我們希望函式的實參不被改變時,用const修飾函式的形參,防止實參發生改變,特別是指標引數,防      止指標本身發生改變。

3)修飾類的成員函式,可以防止類的資料成員和this指標發生改變。

4 )修飾乙個類的物件。

例如:const cmyclass mc,這時的mc對類成員變數和成員函式的呼叫是有限制的:

a、能讀取類的成員變數而不能去修改它;

b、只能呼叫末端有const修飾的函式。

3、輸出陣列的k個最大值

使用stl中的partial_sort.

partial_sort使用的是堆排序,建堆的時間複雜度為o(n),調整堆的時間度雜度為o(logn),如果呼叫partial_sort時middle的值為last的值,則相當於呼叫sort,對所有元素排序,但是堆排序是穩定的排序。假如求的是m個元素的partial_sort,則,o(n) + m*o(logn);

相比使用sort()函式使用的快速排序,其時間複雜度為n(logn)。

4、對鍊錶進行排序

struct node

;5、 給出只允許程序單例執行的**

在linux/unix環境下通過檔案所實現,見apue-單例項守護程序。

為了正常運作,某些守護程序時實現為單例項的,也就是在忍一時刻只執行該守護程序的乙個副本。例如,該守護程序可能需要互斥的訪問乙個裝置。在cron守護進城的情況下,如果同時有多個實力執行,那麼每個飛奔都可能試圖開始某個預定的操作,於是造成了該作業系統的重複執行,很可能導致出錯。

使用檔案鎖和記錄鎖機制的方法可以用來保證乙個守護進城只有乙個副本在執行。如果每乙個守護程序建立乙個檔案,並且在整個檔案上加上一把寫鎖,那就只允許建立一把這樣的寫鎖。所以在此之後的如試圖在建立一把這樣的寫鎖就將失敗,一次後序的守護程序副本指明已有乙個副本正在執行。

檔案和記錄鎖提供了一種方便的互斥機制。如果守護程序在整個檔案上得到一把寫鎖,那麼在該守護程序終止時,這把鎖江北自動的刪除。簡化了復原蘇圩的處理,出去了對以前的守護程序實力需要進城清理的有關操作。

6、讀出指定目錄下的txt檔案,統計txt檔案數目

7、tcp三次握手的序列圖

另一張試卷:

1、解釋mvc模型

2、ipc機制

3、判斷大端小端

[cpp]view plain

copy

print?

intis_big_endian()  

bool

is_big_endian()  

c;  

c.i = 1;  

return

(c.ch!=1);  

}  

[cpp]view plain

copy

print?

intis_big_endian()  

bool

is_big_endian()  

c;  

c.i = 1;  

return

(c.ch!=1);  

}  

4、判斷乙個128位的整數是否為素數。

5、tcp伺服器伺服器端使用到的socket api函式,按照使用的順序。

6、c++指標與引用的區別。

1)  指標是乙個實體,而引用僅是個別名;

2)  引用使用時無需解引用(*),指標需要解引用;

3)  引用只能在定義時被初始化一次,之後不可變;指標可變;

4)  引用沒有 const,指標有 const,const 的指標不可變;

5)  引用不能為空,指標可以為空;

6)  「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身(所指向的變數或物件的位址)的大小;

typeid(t) == typeid(t&) 恒為真,sizeof(t) == sizeof(t&) 恒為真,

但是當引用作為成員時,其占用空間與指標相同(沒找到標準的規定)。

7)  指標和引用的自增(++)運算意義不一樣;

7、c++的型別轉換操作符,給出例子。

8、stl中的兩種容器的實現

9、mfc和qt的訊息機制的區別

騰訊2013研發筆試題目

1.資料庫 資料庫中有可能會存在不一致的資料。造成資料不一致的原因主要有 如果資料庫中存在冗餘資料,比如兩張表中都儲存了使用者的位址,在使用者的位址發生改變時,如果只更新了一張表中的資料,那麼這兩張表中就有了不一致的資料。比如某個訂票系統中,兩個使用者在同一時間訂同一張票,如果併發控制不當,可能會導...

2013豆瓣校園招聘研發類筆試題

1 將乙個遞迴演算法改為對應的非遞迴演算法時,通常需要使用 a 優先佇列 b 佇列 c 迴圈佇列 d 棧 2 爸爸 媽媽 妹妹 小強,至少兩個人同一生肖的概率是多少?a 41 96 b 55 96 c 72 128 d 90 128 3 已知 p null,q new char 100 sizeof...

C 面試 筆試題目

1 c 中 struct和class的區別是什麼 struct的成員的預設屬性是公開的,class的成員的預設屬性是私有的 2 c 程式中呼叫被c編譯器編譯後的函式,為什麼包含extern c extern是c c 中的關鍵字其宣告的函式和變數可以在本模組或者其他模組中使用 其次c 作為一種物件導向...