華為面試題及答案


  
這是第三次接到華為的面試電話了,第一交是自己投的簡歷,第二次及這次都是華為公司通過網絡搜索到打的電話給我,前面兩次我都是剛剛找到工作,然后就接到電話了,哎,真的是有點背運。這次千萬不能夠錯過,這是搞 IT 的人夢的都進的企業,我也是一樣,希望能夠去一個更好的地方,以便更好的發揮自己。為了不使自己一點准備就去赴考場,還是先找點東西看看。我從網上找到問題,然后再根據問題到網絡尋找問題的,謝謝問題的提供者。
Q1:請你分別划划OSI的七層網絡結構圖,和TCP/IP的五層結構圖?

OSI詞條,參見百度百科
Q2:請你詳細的解釋一下IP協議的定義,在哪個層上面,主要有什么作用? TCPUDP呢?
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 給數據包加入傳輸數據並把它傳輸到下一層中,這一層負責傳送數據,並且確定數據已被送達並接收。
互連網絡層 :負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議( IP )。
網絡接口層 :對實際的網絡媒體的管理,定義如何使用實際網絡(如 Ethernet Serial Line 等)來傳送數據。
Q3:請問交換機和路由器分別的實現原理是什么?分別在哪個層次上面實現的?
一般意義上說交換機是工作在數據鏈路層。但隨着科技的發展,現在有了三層交換機,三層交換機已經擴展到了網絡層。也就是說:它等於 數據鏈路層 + 部分網絡層 。交換機中傳的是幀。通過存儲轉發來實現的。 路由器是工作在網絡層。路由器中傳的是 IP 數據報。主要是選址和路由。
Q4:請問C++的類和C里面的struct有什么區別?
結構是一種將數據集合成組的方法,類是一種同時將函數和數據都集合成組的方法。結構和類在表面上的唯一區別是:類中的成員在默認情況下是私有的,而結構中的成員在默認情況下是公用的。  
  class   foo  
  {  
  private:  
        int   data1;  
  public:  
        void   func();  
  };  
 
可以寫成:  
  class   foo  
  {  
        int   data1;  
  public:  
        void   func();  
  };  
 
因為在類中默認的是私有的,所以關鍵字 private 就可以不寫了。  
   
 
如果想用結構完成這個類所作的相同的事,就可以免去關鍵字 public ,並將公有成員放置在私有成員之前:  
  struct   foo  
  {  
          void   func();  
  private:  
        int   data1;  
  };
Q5:請講一講析構函數和虛函數的用法和作用?
JAVA 里沒有象 C++ 中的 , 所謂的析構函數 , 因為當一個對象不在使用的時候 , 它會自動被垃圾回收器回收 , 所以也就用不着析構函數了 , 那個 finalize 也只有在被垃圾回收器回收 , 才會被執行 , 而且很多時候 , 垃圾回收器並不一定執行 , 所以它不能當做 C++ 中的 , 所謂的析構函數使用 , 虛函數在 JAVA 里也是沒有的 , 比較象近的應該算是 abstract
Q6:全局變量和局部變量有什么區別?是怎么實現的?操作系統和編譯器是怎么知道的?
1 )、全局變量的作用用這個程序塊 , 而局部變量作用於當前函數
2 )、前者在內存中分配在全局數據區 , 后者分配在棧區
3 )、生命周期不同:全局變量隨主程序創建和創建,隨主程序銷毀而銷毀,局部變量在局部函數內部,甚至局部循環體等內部存在,退出就不存在
4 )、使用方式不同:通過聲明后全局變量程序的各個部分都可以用到,局部變量只能在局部使用
Q7:一些寄存器的題目,主要是尋址和內存管理等一些知識。
 
Q8:8086是多少位的系統?在數據總線上是怎么實現的?
8086 微處理器初次發布時,這塊 16 位芯片僅包含 29000 個晶體管,運行速度為 5 MHz。而當今基於x 86 架構的奔騰 4 處理器,已經包含 5500 萬個晶體管,運行速度提高了 600 倍以上,高達 3 06 GHz。
8086 是高性能的第三代微處理器,是 Intel 系列的 16 位微處理器,它是采用 HMOS 工藝制造的,內部包含約 29,000 個晶體管。   
8086 16 根數據線和 20 根地址線,因為可用 20 位地址,所以可尋址的地址空間達 220 1M 字節。 8086 工作時,只要一個 5V 電源和一相時鍾,時鍾頻率為 5MHz 。后來, Intel 公司推出的 8086-1 型微處理器時鍾頻率高達 10MHz 8086-2 型微處理器時鍾頻率達 8MHz

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM