1. 程式人生 > >C語言面試題大彙總之華為面試題

C語言面試題大彙總之華為面試題

7. 以下說法正確的是? ( ABC)
A. 標頭檔案中的 ifndef/define/endif 是為了防止該標頭檔案被重複引用。
B. 對於#include  <filename.h> ,編譯器從標準庫路徑開始搜尋 filename.h
   對於#include  “filename.h” ,編譯器從使用者的工作路徑開始搜尋 filename.h
C. C++語言支援函式過載,C語言不支援函式過載。函式被C++編譯後在庫中的名字與C語言的不同。假設某個函式的原型為: void foo(int x, int y); 該函式被C編譯器編譯後在庫 中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字。C++提供了C連線交換指定符號extern“C”來解決名字匹配問題。
D. fopen函式只是把檔案目錄資訊調入記憶體。//錯,fopen是把整個檔案讀入記憶體
三、填空題:(共8題,每題3分,共24分)
1. 一個大小為320 X 192,顏色為灰度索引色的裝置相關點陣圖有______位元組。如果此點陣圖顏色為24位真彩色,則它的大小有______位元組。
2. Windows API的中文意義是____ windows
應用程式介面___。
3. 計算反正弦的庫函式是__asin()____;計算浮點數絕對值的庫函式是__fabs()____;計算浮點數n次方的庫函式是__pow()____;將浮點數轉化為字串的庫函式是___fcvt()___
4. 如果i等於5,那麼( ++i ) - -的返回值是__6__
5. API LoadBitmap()的功能是從__指定的模組和或應用程式例項__中讀取點陣圖資料到記憶體。
6. new和__delete___對應,malloc和_free___對應,他們之間_ 不能__交叉混用。calloc的功能是__為陣列動態分配記憶體___,realloc的功能是_改變原有記憶體區域的大小
_。
7. SendMessage和PostMessage都會向窗體傳送一個訊息,但SendMessage__將一條訊息傳送到指定視窗,立即處理__而PostMessage__將一條訊息投遞到指定視窗的訊息佇列,不需要立即處理___8. 輸出指定圓心、半徑、邊數的圓上的點:
const int nCount = 12;
const double dOrgX = 5.0,
dOrgY = 3.0;
const double dRadius = 2.0;
for( int i = 0; i < nCount; i++ )
{
double dAngle = M_PI * 2.0 / (double)nCount * i;
cout << "第" << i << "點:X = " << ________; cout << ", Y = " << __________ << endl;
}
三、判斷題:(共12題,每題2分,共24分)
1. 一個類必須要有一個不帶引數的建構函式。 錯
2. 你不能寫一個虛的建構函式。 對
3. 類裡面所有的函式都是純虛擬函式時才是純虛類。 錯
4. const成員函式對於任何本類的資料成員都不能進行寫操作。 對
5. 函式中帶預設值的引數必須位於不帶預設值的引數之後。 對
6. char *p = "Test"; p[0] = 'R'; 錯
7. cout << "Test"; 對
8. stl::list不支援隨機訪問疊代器。 對
9. stl::vector的效率比stl::list高。 錯
10. VC和VC++是一回事,而VC++是一種比C++更難一些的語言。 錯
11. 理論上,new和malloc造成的記憶體洩露都會由作業系統回收。 錯
12. 在C++中struct和class的差別很大,所以從語法上不能混用。對
四、簡述題(共3題,每題5分,共15分)
1. 請簡述PeekMessage和GetMessage的區別。