C/C++常考面試題(一)

来源:http://www.cnblogs.com/lengender-12/archive/2017/04/17/6724781.html
-Advertisement-
Play Games

這算是一個系列吧,記錄一下在準備秋招期間,所準備的C++面試題,望秋招順利。所有的面試題均來源於各大論壇,網路 ...


這算是一個系列吧,記錄一下在準備秋招期間,所準備的C++面試題,望秋招順利。所有的面試題均來源於各大論壇,網路。

C/C++常考面試題(一)

  1. 常用的C++數據結構有哪些?
    • vector,序列式容器,相當於數組,順序表;
    • list, 雙向鏈表
    • deque,雙端隊列,queue,隊列,stack,棧,priority_queue,優先順序隊列
    • map,set,multimap,multiset
    • hashtable,散列表
    • 圖,樹等等
  2. 什麼是虛函數,多繼承有什麼問題
    • 被virtual關鍵字修飾的成員函數,就是虛函數
    • 多繼承可能會發生重覆繼承的情況,從不同途徑繼承來的同名的數據成員在記憶體中有不同的拷貝造成數據不一致的問題,二義性的問題。解決辦法虛繼承
  3. 為什麼要用虛析構函數,什麼是多態
    • 在多態中,當用基類操作派生類,在析構時防止只析構基類而不析構派生類的狀況發生
    • 多態可以簡單地概括為“一個介面,多種方法”,在程式運行的過程中才決定調用的函數。多態性是面向對象編程領域的核心概念。多態性是允許你將父對象設置成為和它的一個或更多的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單地說就是一句話,允許將子類類型的指針賦值給父類類型的指針。多態性在C++中都是通過虛函數(Virtual Function)實現的。
  4. 進程和線程的區別和聯繫
    • 定義
      • 進程是程式的一次執行,是程式在一個數據集合上運行的過程,是一個動態概念,是系統進行資源分配和管理的基本單位。
      • 線程是進程的一個實體,是CPU調度和分派的基本單位,是比進程更小的能獨立運行的基本單位,也稱為輕型進程,是可執行的實體單元。
    • 區別
      • 地址空間和其他資源:進程間相互獨立,同一進程的各線程間共用。某進程的線程在其他進程中不可見。
        • 每一個進程都有一個自己的地址空間,即進程空間。進程空間的大小隻與機器位數有關。一個進程崩潰後,在保護模式下不會對其他進程產生影響。而線程只是一個進程中的不同執行路徑,每一個線程有自己的堆棧和局部變數,但是沒有自己獨立的地址空間,每個線程共用其所屬進程的資源。一個線程死掉等於整個進程死掉,所以多進程的程式要比多線程的程式健壯。
      • 通信:進程間通信IPC,線程間可以直接讀寫進程數據段(如全局變數)來進行通信,但是需要相關同步和互斥手段的輔助,以保證數據的一致性。
      • 調度和切換:線程的上下文切換比進程的上下文切換快得多。
      • 一個程式至少有一個進程,一個進程至少有一個線程
      • 從邏輯角度來看,多線程的意義在於一個應用程式中,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 下麵說的線性表主要是線性鏈表,這裡主要將雙向鏈表,單向鏈表迴圈鏈表等是類似的,不再累述。如果發現錯誤,還望不吝指正。 定義 線性表(linear list)是數據結構的一種,一個線性表是n個具有相同特性的數據元素的有限序列。數據元素是一個抽象的符號,其具體含義在不同的情況下一般不同。 在稍複雜的線性 ...
  • 如何個判斷集合中是否存在某個元素——contains() 1.List的contains(obj)方法 實際上,List調用contains(Object obj)方法時,會遍歷List中的每一個元素,然後再調用每個元素的equals()方法去跟contains()方法中的參數進行比較,如果有一個元 ...
  • 問題描述:一進程剛獲得三個主存塊的使用權,若該進程訪問頁面的次序是1,2,3,4,1,2,5,1,2,3,4,5。當採用LRU演算法時,發生的缺頁次數是多少? Hint:LRU(Least Recently Used)意思是近期最少使用。 這個演算法常用於頁面置換演算法中。當我們新要訪問的頁面不在主存中時 ...
  • 使用toPlainString意為返回不不待指數的字元串 與toString區別當數據的位數為0的時候,使用toString就會出現無法正的的轉化的問題。 所以在處理科學計數法是不適用toString而是toPlainString,避免偶發錯誤發生。 ...
  • 一、模塊的認識。 模塊:指的是把預先寫好的內容封裝成一個模塊,可用時直接調用,模塊又稱為庫 模塊又稱為標準庫和第三方庫。 標準庫,預設安裝好官方所公佈的庫 C:\Python35\Lib 第三方庫,是從網上下載下來需要安裝上去。C:\Python35\Lib\site-packages getpas ...
  • <!-- 占用一個節點對象 --><province> <city code="027">武漢</city> <city code="0716">荊州</city> <city code="0718">宜昌</city></province><!-- 占用第三個節點對象 --> JAVA代碼如下: ...
  • 繼承(inheritance)是面向對象編程的核心機制之一,沒有使用繼承的程式設計,就不能成為面向對象的程式設計。 1.繼承的定義 特殊類的對象擁有一般類的全部屬性與行為,稱為特殊類對一般類的繼承。一個類可以是多個一般類的特殊類,也可以從多個一般類中繼承屬性與行為,但在java語言中,不允許一個類從 ...
  • 本文大綱 一、簡介 二、緩存的概念 三、自定義實現緩存機制 四、什麼是Ehcache 五、Ehcache怎麼用 六、Spring對緩存的支持 七、Spring+Ehcache實現 八、Spring+Shiro+Ehcache實現 九、總結 一、簡介 在項目中,用到Shiro來做驗證授權的控制。但在實 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...