1、隊列和棧有什麼區別?
答:隊列先進先出,棧後進先出
2、不能做 switch()的參數類型
答 :switch 的參數不能爲實型。
3、局部變量能否和全局變量重名?
答:能,局部會屏蔽全局。要用全局變量,需要使用"::"
局部變量可以與全局變量同名,在函數內引用這個變量時,會用到同名的局部變量,而不會用到全局變量。對於有些編譯器而言,在同一個函數內可以定義多個同名的局部變量,比如在兩個循環體內都定義一個同名的局部變量,而那個局部變量的作用域就在那個循環體內
4、如何引用一個已經定義過的全局變量?
答 、可以用引用頭檔案的方式,也可以用 extern 關鍵字,如果用引用頭檔案方式來引用某個在頭檔案中聲明的全局變量,假定你將那個變量寫錯了,那麼在編譯期間會報錯,如果你用 extern 方式引用時,假定你犯了同樣的錯誤,那麼在編譯期間不會報錯,而在連接期間報錯。
5、.h 頭檔案中的 ifndef/define/endif 的作用?
答:防止該頭檔案被重複引用。
6、#i nclude 與 #i nclude "file.h"的區別?
答:前者是從 Standard Library 的路徑尋找和引用 file.h,而後者是從當前工作路徑搜尋並引用 file.h。
7、描述實時系統的基本特性
答 :在特定時間內完成特定的任務,實時性與可靠性。
8、全局變量和局部變量在內存中是否有區別?如果有,是什麼區別?
答 :全局變量儲存在靜態數據區,局部變量在堆棧中。
9、什麼是平衡二叉樹?
答 :左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大於 1。
10、關鍵字 static 的作用是什麼?
這個簡單的問題很少有人能回答完全。在 C 語言中,關鍵字 static 有三個明顯的作用:
1). 在函數體,一個被聲明爲靜態的.變量在這一函數被調用過程中維持其值不變。
2). 在模組內(但在函數體外),一個被聲明爲靜態的變量可以被模組內所用函數訪問,但不能被模組外其它函數訪問。它是一個本地的全局變量。
3). 在模組內,一個被聲明爲靜態的函數只可被這一模組內的其它函數調用。那就是,這個函數被限制在聲明它的模組的本地範圍內使用。
大多數應試者能正確回答第一部分,一部分能正確回答第二部分,同是很少的人能懂得第三部分。這是一個應試者的嚴重的缺點,因爲他顯然不懂得本地化數據和代碼範圍的好處和重要性。
11、“引用”與指針的區別是什麼?
答 、1) 引用必須被初始化,指針不必。
2) 引用初始化以後不能被改變,指針可以改變所指的對象。
3) 不存在指向空值的引用,但是存在指向空值的指針。指針透過某個指針變量指向一個對象後,對它所指向的變量間接操作。程序中使用指針,程序的可讀性差;而引用本身就是目標變量的別名,對引用的操作就是對目標變量的操作。
流操作符<<和>>、賦值操作符=的返回值、拷貝構造函數的參數、賦值操作符=的參數、其它情況都推薦使用引用
12、堆棧溢出一般是由什麼原因導致的?
答 :1.沒有回收垃圾資源
2.層次太深的遞歸調用