2015校招網易C/C++工程師筆試題(附答案)


1. #include < filename.h >和#i nclude “filename.h” 有什么區別?  
答:對於#i nclude < filename.h >,編譯器從標准庫路徑開始搜索filename.h  
       對於#i nclude “filename.h”,編譯器從用戶的工作路徑開始搜索filename.h

2. 在C++ 程序中調用被C 編譯器編譯后的函數,為什么要加extern “C”?  
答:C++語言支持函數重載,C 語言不支持函數重載。函數被C++編譯后在庫中的名字與C 語言的不同。假設某個函數的原型為:
                                 void foo(int x, int y);  
該函數被C 編譯器編譯后在庫中的名字為_foo , 而C++ 編譯器則會產生像_foo_int_int 之類的名字。  
C++提供了C 連接交換指定符號extern“C”來解決名字匹配問題。 

3. 一個類有基類、內部有一個其他類的成員對象,構造函數的執行順序是怎樣的?  
答:先執行基類的(如果基類當中有虛基類,要先執行虛基類的,其他基類則按照聲明派生類時的順序依次執行),再執行成員對象的,最后執行自己的。

4. New delete 與malloc free 的區別  
答:用malloc 函數不能初始化對象,new 會調用對象的構造函數。Delete 會調用對象的destructor,而free 不會調用對象的destructor.  

5. Struct 和class 的區別  
答:struct 中成員變量和成員函數默認訪問權限是public,class 是private 

6.請問下面程序有什么錯誤?  
int a[60][250][1000],i,j,k;  
for(k=0;k<=1000;k++)  
for(j=0;j<250;j++)  
for(i=0;i<60;i++)  
a[i][j][k]=0;  
答:把循環語句內外換一下

7. 請寫出下列代碼的輸出內容

2015校招網易C/C++工程師筆試題(附答案)

a=13,b=10,c=12;d=120

8. 寫出BOOL,int,float,指針類型的變量a 與零的比較語句。  
答: BOOL : if ( !a )
  int : if ( a == 0)
  float : const EXPRESSION EXP = 0.000001
  if ( a < EXP && a >-EXP)
  pointer : if ( a != NULL)

9.已知strcpy 函數的原型是:
  char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。不調用C++/C 的字符串庫函數,請編寫函數 strcpy
答:

2015校招網易C/C++工程師筆試題(附答案)

10.寫一個函數找出一個整數數組中,第二大的數。
答:

2015校招網易C/C++工程師筆試題(附答案)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM