首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C/C++ 經典面試題匯總:指標、記憶體、關鍵字、網路、作業系統

     編輯:關於C語言

本文整理自多家知名企業面試題,涵蓋 C/C++ 基礎、資料結構、作業系統、網路協議、嵌入式開發等領域。重點題目與解析如下:

經典找錯題

  • strcpy 目的緩衝區大小不足(需預留 \0)。
  • for 迴圈邊界條件錯誤、變數未宣告。
  • strlen 判斷邊界應用 < 而非 <=。

關鍵字考點

  • static:限制作用域、設定儲存域(靜態區)。
  • const:唯讀變數,編譯期優化。
  • volatile:防止編譯器優化,用於硬體暫存器、多執行緒共享變數。

指標與引用差異

  • 引用必須初始化,指標不必。
  • 引用初始化後不可改變綁定對象,指標可改。
  • 不存在空引用,存在空指標。

記憶體分佈

  • 全域變數:靜態區。
  • 區域變數:堆疊。
  • 動態分配:堆。

演算法與資料結構

  • 平衡二叉樹:左右子樹皆為平衡二叉樹,且高度差絕對值 ≤ 1。
  • 冒泡排序時間複雜度:O(n²)。
  • 浮點數比較零值:if (x > EPS && x < -EPS)。

網路協議

  • Internet 採用 TCP/IP,五層結構:應用、傳輸、網路、資料鏈路、物理。
  • ARP 協議解析 IP 到物理地址。
  • IP 地址 = 網路號 + 主機號(需配合子網遮罩)。

作業系統核心

  • 進程與執行緒差異:調度單位、資源擁有、並發性、系統開銷。
  • 死鎖四必要條件:互斥、請求保持、不可剝奪、循環等待。
  • 進程調度策略:FCFS、優先權、時間片輪轉、多級回饋。

經典程式碼分析題

  • int a[5]={1,2,3,4,5}; int *ptr=(int*)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); 輸出 2,5。&a+1 跳過整個陣列。
  • sizeof 在函數參數中失效(退化為指標)。
  • 位欄位記憶體佈局與有號/無號解讀。

更多題目包含:巨巨集定義、無限迴圈寫法、atoi/atol、inline、單例模式實現、鍵盤鉤子、COM 線程模型、IA32 分頁機制等。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved