Tencent研發工程師筆試知識點

 

一:

32位編譯器:32位系統下指針佔用4字節
       char :1個字節
       char *(即指針變量): 4個字節(32位的尋址空間是2^32, 即32個bit,也就是4個字節。同理64位編譯器)
       short int : 2個字節
       int :  4個字節
       unsigned  int : 4個字節
       float :  4個字節
       double :   8個字節
       long :   4個字節
       long long :  8個字節
       unsigned  long :  4個字節
64位編譯器:64位系統下指針佔用8字節
       char :1個字節
       char *(即指針變量): 8個字節
       short int : 2個字節
       int :  4個字節
       unsigned  int : 4個字節
       float :  4個字節
       double :   8個字節
       long :   8個字節
       long long :  8個字節
       unsigned  long :  8個字節
 
 

二:

在一個單CPU的處理機中,有P1,P3,P5三個做業,有兩個IO設備IO1,IO2,而且可以實現搶先式多任務並行工做的多道程序環境中,投入運行優先級由高到低P5,P1,P3三個做業,他們使用設備的前後順序和佔用設備的時間分別爲:P1:IO2(10ms) CPU(10ms) IO1(30ms)CPU(10ms)P3:IO1(30ms) CPU(10ms) IO2(30ms)CPU(10ms)P5:CPU(20ms) IO1(30ms) CPU(10ms) IO2(15ms)忽略其餘的時間損耗,3個做業投入到所有完成的狀況下。請問下列哪些選項爲IO2的設備利用率?
 
執行過程以下,注意是能夠搶佔的,因此只要先畫 p5 再畫p1最後畫p3就能夠了。字不太好看,你們見諒啊。
 
 

三:

    result輸出的結果是什麼:
 
 

 
首先要明白變量初始化的順序是其聲明的順序,跟初始化列表中的順序無關。因此變量的初始化順序爲m_nFir(i++),m_nSec(i++),m_nThd(i++),&m_nFor(m_nThd);
i初始值爲1,因此通過初始化列表初始化之後m_nFir=1,m_nSec=2,m_nThd=3,m_nFor爲m_nThd的一個引用。
而且此時i的值爲4,構造函數中執行語句m_nThd=i後,m_nThd=4,m_nFor是它的一個引用,天然值也爲4。
輸出結果m_nFir+m_nSec+m_nThd+m_nFor=1+2+4+4=11
 

四:

空間複雜度: 空間複雜度(Space Complexity)是對一個算法在運行過程當中臨時佔用存儲空間大小的量度,記作S(n)=O(f(n))。 一個算法的空間複雜度只考慮在運行過程當中爲 局部變量 分配的存儲空間的大小,它包括爲參數表中 形參 變量分配的存儲空間和爲在 函數體 中定義的局部變量分配的存儲空間兩個部分。
 
對於移動平均算法,是計算某變量以前n個數值的算術平均,正確的說法是:
任何一個算法不一樣狀況下可能有多種解法,通常咱們以時間複雜度爲評判的話,就會用犧牲空間換時間。
這個算法最明顯的有兩種解法,
1.每次進來一個變量n,就遍歷前面n個數,而後求和,再取平均,這樣的話時間複雜度爲O(n),空間爲O(1);
2.以空間換時間:從前日後沒計算一次保留一次求和值到一個輔助空間,這樣計算下一個的時候直接取得前一個和值加上當前數,再取平均獲得當前平均,這樣的話時間複雜度爲O(1),空間爲O(n) 
 

五:

某一速率爲100M的交換機有20個端口,其一個端口上連着一臺筆記本電腦,此電腦從迅雷上下載一部1G的電影須要的時間多是多久?
交換機爲獨佔帶寬,即 每一個端口數據經過率爲爲 最大100Mb/s。注意單位是Mb。所以 最短時間爲:
1GB/(100Mb/s)=1024MB/(12.5MB/s)=81.92s。
 

六:

在linux編程中,如下哪一個TCP的套接字選項與nagle算法的開啓和關閉有關?
 
 
當有一個TCP數據段不足MSS,好比要發送700Byte數據,MSS爲1460Byte的狀況。nagle算法會延遲這個數據段的發送,等待,直到有足夠的數據填充成一個完整數據段。也許有人會問,這有什麼影響呢?沒有太大的影響,整體上來講,這種措施能節省沒必要要的資源消耗。可是要發送的整體數據很小時,這種措施就是拖後腿了。好比,用戶請求一個網頁,大約十幾KB的數據,TCP先發送了八九個數據包,剩下幾百字節一直不發送,要等到另外一個RTT才發送,這時候前面發送數據的ACK已經返回了。這樣的用戶體驗是很很差的。 因此,如今不少服務器都選擇主動關閉nagle算法,由於帶寬夠大,資源消耗不是問題,速度反而是個大問題。
從上述描述中,禁用 nagle,實質就是不在延遲  TCP_NODELAY
 

七:

已知關係R(F,G,H,I,J)及其上的函數相關性集合,F=(F->G,J->F,HJ->I),該關係的候選關鍵字是:
由依賴關係能夠得出:J能夠推導出F,F推導出G,H和J聯合能夠推導出I,即利用H和J能夠推導出全部的字段
 

八:

若系統中有五臺打印機,有多個進程均須要使用兩臺,規定每一個進程一次僅容許申請一臺,則在不發生死鎖的狀況下至多容許__4____個進程參與競爭
哲學家就餐問題的副本
 

九:

在正方體上任取三個頂點連成三角形,則所得的三角形是直角非等腰三角形的機率爲?
共有8個頂點,總有C(8,3);
任取一頂點,過該頂點取其中一個面的對角線,僅有一條過該頂點而且垂直於該面的邊,每一個頂點共有3個面,故共有3個三角形,總數爲,8*3
以下圖A點
 

十:

客戶端C和服務器S之間創建一個TCP鏈接,該鏈接老是以1KB的最大段長髮送TCP段,客戶端C有足夠的數據要發送。當擁塞窗口爲16KB的時候發生超時,若是接下來的4個RTT往返時間內的TCP段的傳輸是成功的,那麼當第4個RTT時間內發送的全部TCP段都獲得了ACK時,擁塞窗口大小是:
 
擁塞避免和慢啓動
當擁塞發生時(超時或收到重複確認),慢啓動門限ssthresh被設置爲當前擁塞窗口cwnd大小(題目爲16)的一半,即8。同時cwnd重置爲1。新的數據被接收,則cwnd增長,規則爲ssthresh以前, 慢啓動,即cwnd指數增加;到達ssthresh以後, 擁塞避免,即cwnd加1
 

十一:

TCP連接中主動斷開連接netstat觀察可能出現的狀態流轉是:
  跳過FIN_WAIT_2,證實被動方也完成了數據傳輸任務,直接把ACK和FIN一塊兒發給了主動方,所以主動方從FIN_WAIT_1直接跳過FIN_WAIT_2進入TIME_WAIT
 

十二:

定義:linux

  主鍵 -- 惟一標識一條記錄,不能有重複的,不容許爲空算法

  外鍵 -- 表的外鍵是另外一表的主鍵  外鍵能夠有重複的  能夠是空值編程

  索引 -- 該字段沒有重複值,但能夠有一個空值服務器

做用:函數

  主鍵 -- 用來保證數據完整性spa

  外鍵 -- 用來和其餘表創建聯繫用的3d

  索引 -- 是提升查詢排序的速度  指針

個數:code

  主鍵 -- 主鍵只能有一個orm

  外鍵 -- 一個表能夠有多個外鍵

  索引 -- 一個表能夠有多個惟一索引

 

 

 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

相關文章
相關標籤/搜索