1 . 析構函式的特點?答:
2 . c語言中static關鍵字的用途?答:
3 . 區域性變臉是否可以和全域性變臉同名,如果不可以會出現什麼錯誤?如果可以,系統如何解決這種衝突發生?
答:可以同名。如果區域性變數與全域性變數同名,有區域性變數的作用域,使用區域性變數,其他作用域則使用全域性變數。
4 . 堆和棧的區別?
答:資料結構中的堆疊:
棧是一種先進後出的資料結構。
堆是一種特殊的完全二叉樹,每個結點都有乙個值,通常分為最大堆和最小堆。
5 . size of 和 strlen 的區別?
答:size of 是運算子,它的值在編譯之前就確定好了,計算出所建立物件的位元組大小。
strlen 是函式,程式執行時才開始計算,型別必須是字串,返回字串的長度,長度不包括』\0』
6 . 段錯誤的幾種常見情況?答:
7 . typedef 和#define 之間的區別?
答:typedef 在編譯時處理,它在自己的作用域中給已經存在的乙個變數起的乙個型別別名。
#define是預處理指令,在編譯處理時進行簡單的替換,不做正確性檢測。
8 . 指標和陣列之間的區別?
答:陣列名對應著一塊記憶體,其位址與容量在生命週期保持不變,只有陣列的內容可以改變只有陣列的內容可以改變。指標的可以隨時指向任意型別的記憶體塊,它的特徵是「可變」,所以我們用指標來操作動態記憶體。
當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標。
9.簡單敘述一下如何判斷一條單向鍊錶有沒有環?
答:用 fast 和 slow 連個指標分別指向鍊錶的頭部,fast指標每次移動兩個節點, slow指標每次移動乙個節點,fast 先移動,如果fast指標先遇到null,則不存在環。如果fast == slow的情況下,則存在環。
10 . 建構函式和析構函式的異同點?
答:建構函式:
建構函式的名字與類名相同
建構函式可以有任意型別的引數,但不能有返回型別
定義物件時,編譯系統會自動呼叫建構函式
建構函式是特殊的成員函式,函式體可以在類體內,也可以在類體外
建構函式被宣告為公有函式,它是在定義物件的同時被呼叫
析構函式:
析構函式的名字與類名相同,並且前面要有波浪號
析構函式沒有引數,也沒有返回值,而且不能重紫,因此乙個類中只有乙個析構函式
撤銷物件時,系統會自動呼叫析構函式
析構函式可以用virtual ,建構函式不能是虛函式
析構函式是類的特殊成員函式
11 . 型別轉換建構函式是什麼?
答:自動呼叫型別匹配的建構函式自動將基本資料型別轉換為物件
12 . c++中explict關鍵字的作用?
答:explict 和建構函式一起使用,指明建構函式只能顯示使用,目的是為了防止不必要的隱式呼叫型別轉換建構函式
13 . 程序的掛起和程序的阻塞分別產生的條件是什麼,以及他們的操作區別是什麼?
答:程序的掛起:系統在超過一定的時間沒有任何動作
程序的阻塞:程序因等待某一件事情而暫時不能執行的狀態,此時處理機空閒,程序也無法使用。
14 . 簡單介紹程序的三態模型?
答:執行、就緒、阻塞
執行:當乙個程序在處理機上執行時,則該程式處於執行狀態 。處於此狀態的數目小於等於處理器的數目。單處理系統,處於執行狀態的程序只有乙個。
就緒:當乙個程序獲得除處理及以外的一切資源,一旦得到處理機就可以執行
阻塞:乙個程序正在等待某件事情發生而暫時停止執行
15 . 簡述殭屍程序是怎樣產生和系統對殭屍程序的處理機制?
答:殭屍程序:乙個已經終止但是其父程序尚未對其進行處理的程序
處理機制:如果父程序沒有sigchid訊號處理函式,那麼呼叫wait()或者waitpid()等待子程序的結束,又沒有顯示忽略該訊號,那麼將會保持殭屍的狀態,如果父程序結束,那麼init程序自動會接受這個子程序,他還是會被消除的
C C 一些常見的面試題(二)
1.為什麼拷貝建構函式account const account other 不能寫成account const account other 答 如果不傳入引用,函式傳參過程中系統會呼叫一次複製操作,即會呼叫一次拷貝建構函式,而該拷貝建構函式又是引數傳遞,就會呼叫拷貝建構函式,這樣就會進入乙個死迴圈...
C C 程式設計 一些面試題
1 如何判斷程式是c程式還是cpp程式 根據巨集 cplusplus include using namespace std void main 2 c 和c的不同 3 引用和指標的區別 4 int id sizeof int const int a 5 int b a int c 5 const ...
一些常見的演算法面試題
第一題 求乙個數字陣列中連續 從小到大 的且長度大於n的子陣列 public static void main string args int lenght 4 暫定義n的長度為4 int count 0 每次迴圈連續元素的個數 int i 0 int nums 0 迴圈次數 for i lengh...