2014網(wǎng)易校園招聘C/C++筆試題
1. #i nclude < filename.h >和#i nclude “filename.h” 有什么區(qū)別?
答:對(duì)于#i nclude < filename.h >,編譯器從標(biāo)準(zhǔn)庫(kù)路徑開(kāi)始搜索filename.h
對(duì)于#i nclude “filename.h”,編譯器從用戶(hù)的工作路徑開(kāi)始搜索filename.h
2. 在C++ 程序中調(diào)用被C 編譯器編譯后的函數(shù),為什么要加extern “C”?
答:C++語(yǔ)言支持函數(shù)重載,C 語(yǔ)言不支持函數(shù)重載。函數(shù)被C++編譯后在庫(kù)中的名字與C 語(yǔ)言的不同。假設(shè)某個(gè)函數(shù)的原型為: void foo(int x, int y);
該函數(shù)被C 編譯器編譯后在庫(kù)中的名字為_(kāi)foo , 而C++ 編譯器則會(huì)產(chǎn)生像_foo_int_int 之類(lèi)的名字。
C++提供了C 連接交換指定符號(hào)extern“C”來(lái)解決名字匹配問(wèn)題。
3. 一個(gè)類(lèi)有基類(lèi)、內(nèi)部有一個(gè)其他類(lèi)的成員對(duì)象,構(gòu)造函數(shù)的執(zhí)行順序是怎樣的?
答:先執(zhí)行基類(lèi)的`(如果基類(lèi)當(dāng)中有虛基類(lèi),要先執(zhí)行虛基類(lèi)的,其他基類(lèi)則按照聲明派生類(lèi)時(shí)的順序依次執(zhí)行),再執(zhí)行成員對(duì)象的,最后執(zhí)行自己的。
4. New delete 與malloc free 的區(qū)別
答:用malloc 函數(shù)不能初始化對(duì)象,new 會(huì)調(diào)用對(duì)象的構(gòu)造函數(shù)。Delete 會(huì)調(diào)用對(duì)象的destructor,而free 不會(huì)調(diào)用對(duì)象的destructor.
5. Struct 和class 的區(qū)別
答:struct 中成員變量和成員函數(shù)默認(rèn)訪問(wèn)權(quán)限是public,class 是private
6.請(qǐng)問(wèn)下面程序有什么錯(cuò)誤?
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;
答:把循環(huán)語(yǔ)句內(nèi)外換一下
7. 請(qǐng)寫(xiě)出下列代碼的輸出內(nèi)容
#include <.stdio.h>
main()
{
int a,b,c,d;
a=10;
b=a++;
c=++a;
d=10*a++;
printf("b,c,d:%d,%d,%d",b,c,d);
return 0;
}
答:10,12,120
8. 寫(xiě)出BOOL,int,float,指針類(lèi)型的變量a 與零的比較語(yǔ)句。
答: BOOL : if ( !a )
int : if ( a == 0)
float : const EXPRESSION EXP = 0.000001
if ( a < EXP && a >-EXP)
pointer : if ( a != NULL)
9.已知strcpy 函數(shù)的原型是:
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。不調(diào)用C++/C 的字符串庫(kù)函數(shù),請(qǐng)編寫(xiě)函數(shù) strcpy
答:
char *strcpy(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;
if ( strDest == strSrc)
return strDest ;
char *tempptr = strDest ;
while( (*strDest++ = *strSrc++) != ‘\0’)
;
return tempptr ;
}
10.寫(xiě)一個(gè)函數(shù)找出一個(gè)整數(shù)數(shù)組中,第二大的數(shù)。
答案:
const int MINNUMBER = -32767 ;
int find_sec_max( int data[] , int count) //類(lèi)似于1 4 4 4這樣的序列將認(rèn)為1是第二大數(shù)
{
int maxnumber = data[0] ;
int sec_max = MINNUMBER ;
for ( int i = 1 ; i < count ; i++)
{
if ( data[i] > maxnumber )
{
sec_max = maxnumber ;
maxnumber = data[i] ;
}
else
{
if ( data[i] > sec_max )
sec_max = data[i] ;
}
}
return sec_max ;
}
【2014網(wǎng)易校園招聘C/C++筆試題】相關(guān)文章:
華為c/c++筆試題12-19
C/C++面試題目12-12
華為C++筆試題12-25
聯(lián)想C++筆試題12-24
Sony C++筆試題12-19
網(wǎng)易校園招聘運(yùn)維工程師筆試題07-15
C++筆試題目分享12-20
C,C++的幾個(gè)面試題小集12-27
Kingsoft金山公司C/C++筆試題12-17