當前位置:學問君>人在職場>求職指導>

騰訊軟件測試面試題

學問君 人氣:3.15W

Q1:請你分別劃劃OSI的七層網絡結構圖,和TCP/IP的五層結構圖?

騰訊軟件測試面試題

答:七層結構從上到下依次是:

7 應用層 ;6 表示層 ;5 會話層 ;4 傳輸層 ;3 網絡層 ;2 數據鏈路層 ;1 物理層

五層結構是

5 應用層;4 運輸層;3 網絡層; 2 鏈路層;1 物理層。

Q2:請你詳細的解釋一下IP協議的定義,在哪個層上面,主要有什麼作用? TCP與UDP呢?

答:UDP,TCP在傳輸層,IP在網絡層,

TCP/IP是英文Transmission Control Protocol/Internet Protocol的縮寫,意思是"傳輸控制協議/網際協議"。TCP/IP協議組之所以流行,部分原因是因爲它可以用在各種各樣的信道和底層協議(例如T1和X.25、以太網以及RS-232串行接口)之上。確切地說,TCP/IP協議是一組包括TCP協議和IP協議,UDP(User Datagram Protocol)協議、ICMP(Internet Control Message Protocol)協議和其他一些協議的協議組。TCP/IP協議並不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數據鏈路層、網路層、傳輸層、話路層、表示層和應用層。而TCP/IP通訊協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。這4層分別爲:應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、檔案傳輸協議(FTP)、網絡遠程訪問協議(Telnet)等。

傳輸層:在此層中,它提供了節點間的數據傳送服務,如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據並把它傳輸到

Q3:請問交換機和路由器分別的實現原理是什麼?分別在哪個層次上面實現的?

一般意義上說交換機是工作在數據鏈路層。但隨着科技的發展,現在有了三層交換機,三層交換機已經擴展到了網絡層。也就是說:它等於“數據鏈路層 + 部分網絡層”。交換機中傳的是幀。透過存儲轉發來實現的。

路由器是工作在網絡層。路由器中傳的是IP數據報。主要是選址和路由。

Q4:請問C++的類和C裏面的STRUCT有什麼區別?

答:除關鍵字不同外(class,struct)的唯一區別是,

結構在默認情況下的成員是公共(public)的,

而類在默認情況下的成員是私有(private)的。

在C++中,結構是特殊的類。

class是從struct發展而來的。之所以將struct和class都保留,是因爲:

1、提出class是爲了強調一種概念。

2、保留struct是爲了照顧到大多數人的習慣。

struct和class是有區別的。

struct保證成員按照聲明順序在內存中存儲。class不保證等等

而它們都可以繼承,實現多態等。但也有少許區別。比如:

struct A { };

class B : A{ }; //private繼承

struct C : B{ }; //public繼承

這是由於class默認是private,struct默認是public。

一般說來,struct和class可以換用(當然要注意一些語法問題)。

而struct更適合看成是一個數據結構的實現體,

class更適合看成是一個對象的實現體,

對私有成員進行保護,還提供與外界的接口。

從習慣上更喜歡用class。

05:請講一講析構函數和虛函數的用法和作用?

答:置於“~”是析構函數;析構函數因使用"~"符號(邏輯非運算符),表示它爲膩構造函數,加上類名稱來定義。

;析構函數也是特殊的類成員函數,它沒有返回類型,沒有參數,不能隨意調用,也沒有重載,只有在類對象的生命期結束的時候,由系統自動調用。

有適放內存空間的做用!

虛函數是C++多態的一種表現

例如:子類繼承了父類的一個函數(方法),而我們把父類的指針指向子類,則必須把父類的.該函數(方法)設爲virturl(虛函數)。

使用虛函數,我們可以靈活的進行動態綁定,當然是以一定的開銷爲代價。

如果父類的函數(方法)根本沒有必要或者無法實現,完全要依賴子類去實現的話,可以把此函數(方法)設爲virturl 函數名=0

我們把這樣的函數(方法)稱爲純虛函數。

如果一個類包含了純虛函數,稱此類爲抽象類

Q6:全局變量和局部變量有什麼區別?實怎麼實現的?操作系統和編譯器是怎麼知道的?

答:主要的區別是變量的作用範圍不同。全局變量在全局範圍內都有效,而局部變量只在聲明此變量的作用域內有效。

全局變量是屬於實例的,在初始化對象的時候初始化,生命週期與該實例相同,之所以叫全局變量是因爲該實例中的所有方法或屬性都可以引用;局部變量是在實例方法內或static塊中,生命週期從調用該方法到該方法退出,並且只有該方法能夠引用之。

全局變量和局部變量的區別是在存儲器中位置不同,具體說,全局變量存儲在數據段中,局部變量都有可能,一般來說在堆棧段

Q7:一些寄存器的題目,主要是尋址和內存管理等一些知識。

答:尋址方式

表示指令中操作數所在的方法稱爲尋址方式。8086/8088有七種基本的尋址方式:立即尋找,寄存器尋址,直接尋址,寄存器間接尋址,寄存器相對尋址,基址加變址尋址,相對基址加變址尋址。

直接尋址、寄存器間接尋址、寄存器相對尋址、基址加變址尋址和相對基址加變址尋址,這五種尋址方式屬於存儲器尋址,用於說明操作數所在存儲單元的地址。由於總線接口單元BIU能根據需要自動引用段寄存器得到段值,所以這五種方式也就是確定存放操作數的存儲單元有效地址EA的方法。有效地址EA是一個16位的無符號數,在利用這五種方法計算有效地址時,所得的結果認爲是一個無符號數。

除了這些基本的尋址方式外,還有固定尋址和I/O端口尋址等。

內存管理

主要包括內存的分配和回收整理等,實現內存的高效利用。

Q8:8086是多少位的系統?在數據總線上是怎麼實現的?

答:16位系統,8位數據傳送,透過總線控制邏輯實現數據線和地址線的分時複用.

8086是Inter的16位微處理器

有16根數據線和20根地址線,它既能處理16位數據,也能處理8位數據

內部數據總線都是按16位設計的,單外部數據總線只有8條