天天看點

C語言與C++常見面試題

C語言與C++常見面試題

本篇根據各個公司的面試問的常見問題進行總結。

1 變量的聲明和定義有什麼差別

2 簡述#ifdef、#else、#endif和#ifndef的作用

3 寫出int 、bool、 float、指針變量與 “零值”比較的if語句

4 結構體可以直接指派嗎

5sizeof和strlen的差別

6 c 語言的關鍵字static和 c++ 的關鍵字static有什麼差別

7 C 語言的malloc和 C++ 中的new有什麼差別

8 寫一個 “标準”宏min

9 ++i和i++的差別

10 volatile有什麼作用

11 一個參數可以既是const又是volatile嗎

12 a和&a有什麼差別

13 用 c 編寫一個死循環程式

14 結構體記憶體對齊問題

15 全局變量和局部變量有什麼差別?實怎麼實作的?作業系統和編譯器是怎麼知道的?

16 簡述 c、c++ 程式編譯的記憶體配置設定情況

17 簡述strcpy、sprintf與memcpy的差別

18 請解析(*(void (*)( ) )0)( )的含義

19 c語言的指針和引用和c++的有什麼差別?

20 typedef和define有什麼差別

21 指針常量與常量指針差別

22 簡述隊列和棧的異同

23 設定位址為0x67a9的整型變量的值為0xaa66

24 編碼實作字元串轉化為數字

25 c 語言的結構體和 c++ 的有什麼差別

26 簡述指針常量與常量指針的差別

27 如何避免“野指針”

28 句柄和指針的差別和聯系是什麼?

29 new/delete與malloc/free的差別是什麼

30 說一說extern“c”

31 請你來說一下 c++ 中struct和class的差別

32 c++ 類内可以定義引用資料成員嗎?

33 c++ 中類成員的通路權限

34 什麼是右值引用,跟左值又有什麼差別?

35 面向對象的三大特征

36 說一說 c++ 中四種cast轉換

37 c++ 的空類有哪些成員函數

38 對 c++ 中的smart pointer四個智能指針:shared_ptr,unique_ptr,weak_ptr,auto_ptr的了解

39 說說強制類型轉換運算符

40 談談你對拷貝構造函數和指派運算符的認識

41 在 c++ 中,使用 malloc申請的記憶體能否通過delete釋放?使用new申請的記憶體能否用free?

42 用 c++ 設計一個不能被繼承的類

43 c++ 自己實作一個string類

44 通路基類的私有虛函數

45 對虛函數和多态的了解

46 簡述類成員函數的重寫、重載和隐藏的差別

47 連結清單和數組有什麼差別

48 用兩個棧實作一個隊列的功能

49 vector的底層原理

50 vector中的reserve和resize的差別

51 vector中的size和capacity的差別

52 vector中erase方法與algorithn中的remove`方法差別

53 vector疊代器失效的情況

54 正确釋放vector的記憶體(clear(), swap(), shrink_to_fit())

55 list的底層原理

56 什麼情況下用vector,什麼情況下用list,什麼情況下用 deque

57 priority_queue的底層原理

58 map 、set、multiset、multimap的底層原理

59 為何map和set的插入删除效率比其他序列容器高

60 為何map和set每次insert之後,以前儲存的iterator不會失效?

61 當資料元素增多時(從 10000 到 20000),map的set的查找速度會怎樣變化?

62 map 、set、multiset、multimap的特點

63 為何map和set的插入删除效率比其他序列容器高,而且每次insert 之後,以前儲存的iter

64 為何map和set不能像vector一樣有個reserve函數來預配置設定資料?

65 set的底層實作實作為什麼不用哈希表而使用紅黑樹?

66 hash_map與map的差別?什麼時候用hash_map,什麼時候用map?

67 疊代器失效的問題

68 stl線程不安全的情況

C語言與C++常見面試題
c