C++服務(wù)器開發(fā)面試題_第1頁(yè)
C++服務(wù)器開發(fā)面試題_第2頁(yè)
C++服務(wù)器開發(fā)面試題_第3頁(yè)
C++服務(wù)器開發(fā)面試題_第4頁(yè)
C++服務(wù)器開發(fā)面試題_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余3頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、選擇題( 每題 5 分 )1. 鏈表不具有的特點(diǎn)是(B )。(A) 不必事先估計(jì)存儲(chǔ)空間;(B) 可隨機(jī)訪問(wèn)任一元素;(C) 插入刪除不需要移動(dòng)元素;(D) 所需空間與線性表長(zhǎng)度成正比;2. 下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是(D)(A) 線性鏈表;(B) 順序表 ;(C) 循環(huán)鏈表;(D) 棧 ;3. 如果定義一個(gè)C+類 CDate, 語(yǔ)句“ CDate *p = newCDate; ”的含義是( A )。(A) 調(diào)用CDate 類的缺省構(gòu)造函數(shù)從內(nèi)存中分配一個(gè)CDate 類型的對(duì)象,并將該對(duì)象地址賦值給指針p;(B) 調(diào)用CDate 類的拷貝構(gòu)造函數(shù)從內(nèi)存中分配一個(gè)CDate

2、類型的對(duì)象,并將該對(duì)象地址賦值給指針p;(C) 調(diào)用CDate 類的析構(gòu)函數(shù)從內(nèi)存中分配一個(gè)CDate 類型的對(duì)象,并將該對(duì)象地址賦值給指針 p;(D) 從內(nèi)存中釋放指針p 所指向的CDate 類的對(duì)象;4. 下列關(guān)于靜態(tài)數(shù)據(jù)成員正確的是(B )(A) 可以通過(guò)this 指針訪問(wèn)靜態(tài)數(shù)據(jù);(B) 可以用類名和作用域訪問(wèn)靜態(tài)數(shù)據(jù);(C) 靜態(tài)數(shù)據(jù)在類內(nèi)聲明并初始化;(D) 只能由該類的靜態(tài)成員函數(shù)訪問(wèn);? ( A)5. 在 TCP/IP 協(xié)議棧里,如果出現(xiàn)阻塞的情況,下面那種情況最有可能發(fā)生(A) 連接錯(cuò)誤(B) 釋放緩存(C) 包錯(cuò)誤 (D) 丟包6. 下面的類圖表示的是哪個(gè)設(shè)計(jì)模式?(D)(

3、A) 代理模式(Proxy)(B) 裝飾模式(Decorator)(C) 橋接模式(Bridge)(D) 觀察者模式(Observer)二、簡(jiǎn)答題( 每題 7 分 )1. C+ 中指針和引用有什么區(qū)別答:1. 引用訪問(wèn)一個(gè)變量是直接訪問(wèn),而指針是間接訪問(wèn)。2. 引用是一個(gè)變量的別名,本身不單獨(dú)分配自己的內(nèi)存空間,而指針有自己的內(nèi)存空間。3. 引用在開始的時(shí)候就綁定到了一個(gè)內(nèi)存空間( 開始必須賦初值), 所以他只能是這個(gè)內(nèi)存空間的名字, 而不能改成其他的, 當(dāng)然可以改變這個(gè)內(nèi)存空間的值.2. C+ 特點(diǎn)是什么,如何實(shí)現(xiàn)多態(tài)?畫出基類和子類在內(nèi)存中的相互關(guān)系繼承,封裝,多態(tài) 用虛函數(shù)實(shí)現(xiàn)多態(tài)子類可

4、以繼承父類的非私有數(shù)據(jù)成員3. 請(qǐng)寫一個(gè)算法刪除數(shù)組1,1,1,2,2,2,2,2,7,7,1,5,5,5,0中重復(fù)的數(shù)字,使其轉(zhuǎn)變成1,2,7,1,5,0voidNoReplicatedSubstring(int s,int len)vector <int> vectTemp;int nData= s0;vectTemp.push_back(nData);for(int i=1;i<len;i+)if(si = nData)continue; elsenData =si;vectTemp.push_back(si);4. 一次遍歷找鏈表倒數(shù)第n 個(gè)節(jié)點(diǎn) , 要求通過(guò)一次遍歷

5、找到鏈表中倒數(shù)第n 個(gè)節(jié)點(diǎn), 鏈表可能相當(dāng)大,可使用輔助空間,但是輔助空間的數(shù)目必須固定,不能和n 有關(guān)。答案:ListNode*NodeInList(ListNode* pHead,int Num)if(pHead=NULL)return NULL;ListNode* pNode=pHead;/ 當(dāng)前結(jié)點(diǎn)ListNode* pMidNode=pHead;/ 倒數(shù)Num個(gè)結(jié)點(diǎn)while(Num)if(pNode->m_pNext!=NULL)pNode=pNode->m_pNext->m_pNext;Num-;while(pNode->m_pNext!=NULL&

6、;&pNode->m_pNext->m_pNext!=NULL)pNode=pNode->m_pNext->m_pNext;pMidNode=pMidNode->m_pNext;return pMidNode;5. TCP/IP 建立連接的過(guò)程?(3-way shake)答:Client 與 server 建立TCP連接時(shí):首先Client 向 server 發(fā) SYN(請(qǐng)求),然后server回復(fù)(應(yīng)答請(qǐng)求),最后Client 回復(fù),這樣TCP就建立一次連接(三次握手)的過(guò)程就建立了6. 使用 udp 和 tcp 進(jìn)程網(wǎng)絡(luò)傳輸,為什么tcp 能保證包是發(fā)

7、送順序,而udp 無(wú)法保證?1 . 主機(jī)每次發(fā)送數(shù)據(jù)時(shí),TCP就給每個(gè)數(shù)據(jù)包分配一個(gè)序列號(hào)并且在一個(gè)特定的時(shí)間內(nèi)等待接收主機(jī)對(duì)分配的這個(gè)序列號(hào)進(jìn)行確認(rèn),如果發(fā)送主機(jī)在一個(gè)特定時(shí)間內(nèi)沒(méi)有收到接收主機(jī)的確認(rèn),則發(fā)送主機(jī)會(huì)重傳此數(shù)據(jù)包。接收主機(jī)利用序列號(hào)對(duì)接收的數(shù)據(jù)進(jìn)行確認(rèn),以便檢測(cè)對(duì)方發(fā)送的數(shù)據(jù)是否有丟失或者亂序等,接收主機(jī)一旦收到已經(jīng)順序化的數(shù)據(jù),它就將這些數(shù)據(jù)按正確的順序重組成數(shù)據(jù)流并傳遞到高層進(jìn)行處理。2 .UDP不提供可靠的數(shù)據(jù)傳輸!一個(gè)端口發(fā)往同一個(gè)目的端口的幾個(gè)數(shù)據(jù)包的順序可能會(huì)出現(xiàn)混亂7. Linux epoll 的 LT(level triggered) 與 ET(edge-tri

8、ggered) 工作方式的區(qū)別?答:LT:水平觸發(fā),效率會(huì)低于ET觸發(fā),尤其在大并發(fā),大流量的情況下。但是LT 對(duì)代碼編寫要求比較低,不容易出現(xiàn)問(wèn)題。LT 模式服務(wù)編寫上的表現(xiàn)是:只要有數(shù)據(jù)沒(méi)有被獲取,內(nèi)核就不斷通知你,因此不用擔(dān)心事件丟失的情況。ET: 邊緣觸發(fā),效率非常高,在并發(fā),大流量的情況下,會(huì)比 LT 少很多 epoll 的系統(tǒng)調(diào)用,因此效率高。但是對(duì)編程要求高,需要細(xì)致的處理每個(gè)請(qǐng)求,否則容易發(fā)生丟失事件的情況。從本質(zhì)上講:與LT相比,ET模型是通過(guò)減少系統(tǒng)調(diào)用來(lái)達(dá)到提高并行效率的。8. 網(wǎng)絡(luò)編程中設(shè)計(jì)并發(fā)服務(wù)器,使用多進(jìn)程與多線程,請(qǐng)問(wèn)有什么區(qū)別?答:兩者都可以提高程序的并發(fā)度,

9、提高程序運(yùn)行效率和響應(yīng)時(shí)間。線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開銷小,但不利于資源管理和保護(hù);而進(jìn)程正相反。同時(shí),線程適合于在SMP機(jī)器上運(yùn)行,而進(jìn)程則可以跨機(jī)器遷移9. 請(qǐng)列舉進(jìn)程間通迅都有哪些方式?并說(shuō)明工作方式,優(yōu)缺點(diǎn)等。常見三種方式:管道,消息緩沖,共享內(nèi)存1. 無(wú)名管道簡(jiǎn)單方便但局限于單向通信的工作方式并且只能在創(chuàng)建它的進(jìn)程及其子孫進(jìn)程之間實(shí)現(xiàn)管道的共享;有名管道雖然可以提供給任意關(guān)系的進(jìn)程使用但是由于其長(zhǎng)期存在于系統(tǒng)之中,使用不當(dāng)容易出錯(cuò)。2. 消息緩沖,使用方便,但是信息的復(fù)制需要額外消耗CPU的時(shí)間不適宜于信息量大或操作頻繁的場(chǎng)合。3. 共享內(nèi)存,針對(duì)消息緩沖的缺點(diǎn)改而利用內(nèi)存緩沖區(qū)直接交換信息,無(wú)須復(fù)制,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論