C++筆試題(二).CVTE
在9.10晚上久違地參加了一波筆試,突然發現筆試題覆蓋的好多知識點我都不會,就在這裡記錄,備考一波。
這是廣州的CVTE筆試題:
1.考察Linux執行緒的同步和互斥
訊號量,條件變數,互斥鎖,分別是實現同步,還是互斥?
2.迴圈佇列的頭指標和尾指標,如何判斷佇列為空和佇列為滿
3.同一程序的執行緒共享的有?
考察作業系統的多執行緒,看到作業系統書中的一張圖就懂了!
書中所說,共享程式碼段,資料段和其他作業系統資源,如開啟檔案和訊號。
4.執行緒安全的概念
執行緒安全就是說多執行緒訪問同一程式碼,不會產生不確定的結果。
5.下列哪個是win 10的核心版本包? ————這道題我覺得就有點操蛋了
6.下列哪些裝置是OSI 7層模型中的資料鏈路層?
選項有: 網橋,集線器,閘道器,二層交換機,
7.關於gdb的幾個說法,正確的是? ——問的是一些用法
8.有一道關於或,取反,考察短路知識的位運算題
9.C++中的final, override的語法用法,哪一個是正確的?——原來是C++11裡面的東西
10.C++11標準中新加入的用法是?————這個也很操蛋
11.一個大小為3的FIFO,請求頁分別是:1,2,3,4,5,2,3,5,1,2,3,5,請問缺頁次數是多少?
12.關於父程序和子程序
其他8道選擇題不太記得了
2道程式設計題,不能使用本地IDE,沒有線上測評,只有一個文字框的形式:
1.有一個數據庫,有一千萬條使用者檢索所用的字串,(重複度較高),統計出現次數最多的n個字串,要求記憶體佔用較少
void query(vector<int> &input,vector<int> &result,int n )
我當時是用map來實現的。
我遇到的一個問題,就是如何在map中刪除一個已經插入的鍵值對?
2.有一個對映關係:
1-a, 2-b, 3-c.........26-z
27-aa, 28-ab, 29-ac........52-az, 53-ba, 54-bb......
實現以下函式,得到對映結果:
string mapTo(int n)
當時我把數字轉化成26進位制來做,先讓n 減 1, 讓對映關係變成 0-a, 1-b,.....25-z,來符合26進位制數的規律,不過首位的對映關係應該是 1 - a,2 - b,26 - z, 突然發現我的思維好像不能完全解決這個問題啊!又好像只有個位是26進位制????有點懵逼了!!! 最後寫完了程式碼,但是由於沒得除錯,不能保證程式碼的完全正確性。