筆試分析之騰訊2013暑期實習

2021-06-18 05:26:33 字數 2327 閱讀 9333

4月份的筆試,考得不好,經過暑期的磨礪,回頭再看那些題目,有些就豁然開朗了

1.關於型別轉換

1.32

位機上根據下面的**,問哪些說法是正確的?

signedchar a = 0xe0;

unsignedint b = a;

unsignedchar c = a;

a.a>0 && c>0

為真b.a == c

為真c.b

的十六進製制表示是:0xffffffe0d.

上面都不對

我總結了乙個規律:

1.任何數在計算機中是以補碼的形式存在的,所以如果我們printf輸出則是補碼輸出

2.signed

轉換為unsigned

的時候,最高位的1

加入計算,最高位位0

的不變3.unsigned

轉換為signed

的過程和上面的相反

4.char

型轉換為int

的時候,先做型別提公升,提公升的時候,無論char

是有符號還是無符號,要保證該數的正負性,即如果原數是正,提公升補0,

原數為負,提公升補1

,然後在轉換到第2.3

兩種情況下

5.int

型轉換為char

型,可能要考little endian/big endian,不管哪種,只要取最低位置的那個位元組就可以了

下面的測試程式可以的出上面的結論:

#include #include using namespace std;

int main()

2.關於little endian和big endian

a) little-endian就是低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端。

b) big-endian就是高位位元組排放在記憶體的低位址端,低位位元組排放在記憶體的高位址端

測試程式:

#include void main()

小端位元組輸出:78 56 34 12

大端位元組輸出:12 34 56 78

判斷小端大端還有可以使用聯合體,例如:

int main()

u; u.x = 1;

if(u.c == 1)

printf("little endian\n");

else

printf("big endian\n");

return 0;

}

3.關於虛擬記憶體排程的演算法

在記憶體有限的情況下,擴充套件一部分外存作為

虛擬記憶體

,真正的記憶體只儲存當前執行時所用得到資訊,虛擬頁式

儲存管理

減少了程序所需的記憶體空間,卻也帶來了執行時間變長這一缺點:程序執行過程中,不可避免地要把在外存中存放的一些資訊和記憶體中已有的進行交換,由於外存的低速,這一步驟所花費的時間不可忽略。因而,採取我們要採取好的演算法來減少這部分話費的時間

常見的演算法有以下幾種:

lru:近期最少使用演算法,每次替換的是最早替換進來的

fifo:先進先出演算法,維護乙個佇列,每次替換的是最早進入佇列的那一頁

opt:最優替換演算法,根據未來的替換頁來替換,說明見圖下說明

先說明一下缺頁的概念,當cpu訪問記憶體中的資料時,資料不存在就會發生缺頁,此時如果資料在虛擬記憶體中,我們需要把資料從虛擬記憶體中置換到記憶體中,上面三種演算法產生的缺頁次數是不一樣的

看如下三個圖(從網上找的,不是自己畫得,但都能很好的說明問題)

說明:當請求2時,2已在記憶體中,我的理解是做了乙個替換2->2,所以下次請求1的時候,2是最近才進入佇列的,需要替換掉2->1

缺頁次數:16次

缺頁次數:15

說明:例如,替換4的時候,我們看到4後面我們需要2和1頁,所以我們此時就不要把2和1替換出來,應該把3替換出來,即3->4,再比如,請求6頁的時候,看到6後面需要2和1,我們就把5替換出來

缺頁次數:11次

我們可以看到opt演算法的效率最高,但是

要實現opt演算法,唯一的辦法是讓程式先執行一遍,記錄下實際的頁位址流情況,很明顯實際,實際上,經常把這種演算法用來作為評價其它頁面替換演算法好壞的標準。

2013騰訊暑期實習筆試

筆試題目由20道3分的不定項選擇題 注意是不定項選擇!博主悲劇就 於此,全部當單選來做,考完還納悶為什麼有的題目感覺幾個選項都對 以及10道4分的填空題目構成。範圍覆蓋了程式語言基礎 如巨集定義 資料結構 演算法的複雜度 二叉樹等 資料庫的一些概念 作業系統 記憶體管理 以及網路 協議 位址 的部分...

騰訊2013暑期實習筆試 面試總結

接下來說說面試和筆試。筆試其實挺無語的,和去年的題大量重合,我前一天剛好找了去年的題看,所以很多 題都答上了。當然,其實還是有3,4道題根本沒記住答案 但是知道是去年的題 所以就亂答的。附加題認真答了一道,另一道基本不會,隨便寫了幾行。後來在一面的時候看到自己卷子的分數是71,面試官跟我說分數還不錯...

微軟2013暑期實習筆試回憶

一共是20道選擇題 有可能多選 答對加分,答錯扣分,所以了不敢亂選啊,現在開始回憶一些題目 1 有1000瓶水,其中1瓶是有毒的,小老鼠如果喝了有毒的水會在乙個星期後死掉,問至少需要多少只小老鼠來做實驗,才能夠在一星期後選出有毒的一瓶水。我選的是10,2 10 1024 1000,原理跟1 n選擇器...