網上摘抄一些C 筆試題目

2021-05-23 04:29:54 字數 1670 閱讀 4003

c++

筆試題

1.多型類中的虛函式表是compile-time,還是run-time時建立的?

答案:

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

3.完成字串拷貝可以使用 sprintf、strcpy 及 memcpy 函式,請問這些函式有什麼區別

,你喜歡使用哪個,為什麼?

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

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;  

}

一些騰訊筆試題目

1 請定義乙個巨集,比較兩個數a b的大小,不能使用大於 小於 if語句 2 如何輸出原始檔的標題和目前執行行的行數 3 兩個數相乘,小數點後位數沒有限制,請寫乙個高精度演算法 4 寫乙個病毒 5 有a b c d四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1 2 5 10分鐘,只有一支手電...

遞迴 網上搜的一些筆試題

size medium 乙個射擊運動員打靶,靶一共有10環,連開10槍打中90環的可能性有多少種?請用遞迴演算法程式設計實現。size public class cs public cs int times,int score public void loop int cur cur for int...

一些筆試題

int main int argc,char argv int multi int a,int b,int c typedef int func1 int in typedef int func2 int int int 013.請寫出下列 的輸出內容 include stdio.h main 解 ...