IT公司筆試面試題系列(一)

2021-06-05 21:23:16 字數 1870 閱讀 2469

c++筆試題

答案:虛函式表是在編譯期就建立了,各個虛函式這時被組織成了乙個虛函式的入口位址的陣列.而物件的隱藏成員--虛函式表指標是在執行期--也就是建構函式被呼叫時進行初始化的,這是實現多型的關鍵.

答案:只要基類在定義成員函式時已經宣告了virtue關鍵字,在派生類實現的時候覆蓋該函式時,virtue關鍵字可加可不加,不影響多型的實現。子類的空間裡有父類的所有變數(static除外)。

答案:這些函式的區別在於實現功能以及操作物件不同。

1.strcpy 函式操作的物件是字串,完成從源字串到目的字串的拷貝功能。

2.snprintf 函式操作的物件不限於字串:雖然目的物件是字串,但是源物件可以是字串、也可以是任意基本型別的資料。這個函式主要用來實現(字串或基本資料型別)向字串的轉換功能。如果源物件是字串,並且指定 %s 格式符,也可實現字串拷貝功能。

3.memcpy 函式顧名思義就是記憶體拷貝,實現將乙個記憶體塊的內容複製到另乙個記憶體塊這一功能。記憶體塊由其首位址以及長度確定。程式中出現的實體物件,不論是什麼型別,其最終表現就是在記憶體中佔據一席之地(乙個記憶體區間或塊)。因此,memcpy 的操作物件不侷限於某一類資料型別,或者說可適用於任意資料型別,只要能給出物件的起始位址和記憶體長度資訊、並且物件具有可操作性即可。鑑於 memcpy 函式等長拷貝的特點以及資料型別代表的物理意義,memcpy 函式通常限於同種型別資料或物件之間的拷貝,其中當然也包括字串拷貝以及基本資料型別的拷貝。

對於字串拷貝來說,用上述三個函式都可以實現,但是其實現的效率和使用的方便程度不同:

1.strcpy 無疑是最合適的選擇:效率高且呼叫方便。

2.snprintf 要額外指定格式符並且進行格式轉化,麻煩且效率不高。

3.memcpy 雖然高效,但是需要額外提供拷貝的記憶體長度這一引數,易錯且使用不便;並且如果長度指定過大的話(最優長度是源字串長度 + 1),還會帶來效能的下降。其實 strcpy 函式一般是在內部呼叫 memcpy函式或者用彙編直接實現的,以達到高效的目的。因此,使用 memcpy 和 strcpy 拷貝字串在效能上應該沒有什麼大的差別。

4.請編寫乙個 c 函式,該函式給出乙個位元組中被置 1 的位的個數,並請給出該題的至少乙個不同解法。

第一種

unsigned int testasone0(char log) 

return num; 

} 第二種

unsigned int testasone1(char log) 

return num; 

} 還有一種方法是x&x-1,微軟的《程式設計之美》裡有,這裡不再贅述。

5.請編寫乙個 c 函式,該函式將給定的乙個字串轉換成整數。

int invert(char *str)

return num;}

6.請編寫乙個 c 函式,該函式將給定的乙個整數轉換成字串。

void inttocharchange(int num, char* pval) 

} for(j=0; j<=i; j++) 

//倒置

pval[j] = '\0'; }

7.請編寫乙個 c 函式,該函式在乙個字串中找到可能的最長的子字串,該字串是由同一字元組成的。

int childstring(char*p) 

//自己寫

while( i< stringlen ) 

else 

else 

len=0;

i++;

j++;

}  } 

eturn 

maxlen; 

}

IT公司筆試面試題系列(三)

1.三個float a,b,c。問值 a b c b a c a b c a c b 兩者都不行。在比較float或double時,不能簡單地比較。由於計算誤差,相等的概率很低。應判斷兩數之差是否落在區間 e,e 內。這個e應比浮點數的精度大乙個數量級。2.請講一講析構函式和虛函式的用法和作用?析構...

IT公司筆試面試題系列(四)

1.請你分別畫出osi的七層網路結構圖和tcp ip的五層結構圖。7 應用層 5應用層 6 表示層 4傳輸層 5 會話層 3 網路層 4 傳輸層 2 資料鏈路層 3 網路層 1物理層 2 資料鏈路層 1 物理層 2.請你詳細地解釋一下ip協議的定義,在哪個層上面?主要有什麼作用?tcp與udp呢?i...

筆試面試題

1 昨天參加一公司筆試,給幾道演算法題整懵了,其實也不難,但好久沒有碰演算法,只是有思路,要讓我在這麼短的時間內寫出程式來還是不行。2 這裡將其中一道稍微複雜一點的演算法題寫下來,以此小結。3 4 題目描述 5 將n個雞蛋放入到m個籃子中去 n m 保證每個籃子中至少乙個雞蛋,然後指定乙個數x,要求...