C 面試 筆試題目

2021-09-26 18:32:19 字數 1173 閱讀 5374

1、c++中 struct和class的區別是什麼

struct的成員的預設屬性是公開的,class的成員的預設屬性是私有的

2、c++程式中呼叫被c編譯器編譯後的函式,為什麼包含extern 「c」?

extern是c/c++中的關鍵字其宣告的函式和變數可以在本模組或者其他模組中使用

其次c++作為一種物件導向的語言支援函式過載,而c語言並不支援。比如foo(int i)

c++會生成_fooi這樣的函式,也記錄了函式名也記錄了函式引數數量以及型別資訊,而c會生成_foo這樣的資訊

extern"c"這個宣告的真實目的就是解決了名字匹配問題,實現了c/c++的混合程式設計

3、指標與引用的相同點和不同點

相同點:

通過傳參共享變數

優化傳參效率

堆記憶體通過指標/引用與識別符號建立聯絡

不同點指標是乙個實體,引用是取別名

指標可以不初始化,引用必須初始化

程式需要為指標變數分配記憶體,不必為引用分配記憶體

4、new/delete和malloc/free有什麼區別?new/delete和new/delete的區別

new/delete ---------- malloc/free ----------- new/delete

識別符號 ----------- 標準庫函式---------------建立/銷毀多個物件 不可與delete/new混用

自動呼叫構造/析構函式----不呼叫構造/析構

自動計算位元組數-----需要手動計算位元組數

返回帶位址型別-----返回void*位址

出錯丟擲異常----------返回null

5、過載、隱藏、覆蓋的區別和執行方式

過載:同乙個作用域下

函式名字相同

引數列表不同

覆蓋:分別位於派生類與基類

函式簽名必須完全相同

返回值必須是同類或父子類

隱藏:子類隱藏父類的識別符號(不一定是函式)

父類有同名識別符號,如不構成覆蓋且通過編譯,則構成隱藏

物件導向的三個基本特徵

封裝:把抽象的結構歸結成乙個類,並例項化設定物件的屬性呼叫物件的功能達到解決問題的目的

繼承:解決問題前看一下有沒有類似的類可以解決問題,如果可以則繼承舊的類並拓展

多型:物件的多種形態,向物件發布指令,形象對不同的指令有不同的反應

面試筆試題目總結

總結一下以前面試和筆試時的題目,找工作要用的,說不定哪天就又遇上了。1.鍊錶與陣列的區別 這個題目遇到了兩次 答 1 陣列要事前定義固定的長度,不能動態的刪減 2 鍊錶能動態的進行儲存分配,可以適應資料動態的增減情況,可以方便的插入刪除資料項 3 陣列從棧中分配空間,自由度小 4 鍊錶從堆中分配空間...

C 面試筆試題目(選1)

標籤 空格分隔 未分類 看網上文章的同時,把裡面提到的一些基礎問題重新按照自己的話來寫一遍,加深印象。c 中,記憶體分為5個區,分別為 堆 棧 自由儲存區 全域性 靜態儲存區 常量儲存區。在32位編譯器下 short int 2位元組 int 4位元組 unsigned int 4位元組 char ...

C 面試筆試題

看一下這是一些c 面試的筆試,對於學習c 的你也許也是個考驗吧,有時間做做吧 給定九個數,例如 1,3,3,5,6,7,8,8,9計算出這九個數的排列的種數。需要考慮重複情況,如果給定9個1,則只有一種結果。限制 不能使用stl庫 要求 完成函式 unsigned int foo unsigned ...