- 相關(guān)推薦
C/C++ 筆試、面試題目大匯總
1.求下面函數(shù)的返回值(微軟)
int func(x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
假定x = 9999,
C/C++ 筆試、面試題目大匯總
。 答案:8思路:將x轉(zhuǎn)化為2進(jìn)制,看含有的1的個數(shù)。
2. 什么是“引用”?申明和使用“引用”要注意哪些問題?
答:引用就是某個目標(biāo)變量的“別名”(alias),對應(yīng)用的操作與對變量直接操作效果完全相同。申明一個引用的時候,切記要對其進(jìn)行初始化。引用聲明完畢后,相當(dāng)于目標(biāo)變量名有兩個名稱,即該目標(biāo)原名稱和引用名,不能再把該引用名作為其他變量名的別名。聲明一個引用,不是新定義了一個變量,它只表示該引用名是目標(biāo)變量名的一個別名,它本身不是一種數(shù)據(jù)類型,因此引用本身不占存儲單元,系統(tǒng)也不給引用分配存儲單元。不能建立數(shù)組的引用。
3. 將“引用”作為函數(shù)參數(shù)有哪些特點(diǎn)?
(1)傳遞引用給函數(shù)與傳遞指針的效果是一樣的。這時,被調(diào)函數(shù)的形參就成為原來主調(diào)函數(shù)中的實(shí)參變量或?qū)ο蟮囊粋別名來使用,所以在被調(diào)函數(shù)中對形參變量的操作就是對其相應(yīng)的目標(biāo)對象(在主調(diào)函數(shù)中)的操作。
(2)使用引用傳遞函數(shù)的參數(shù),在內(nèi)存中并沒有產(chǎn)生實(shí)參的副本,它是直接對實(shí)參操作;而使用一般變量傳遞函數(shù)的參數(shù),當(dāng)發(fā)生函數(shù)調(diào)用時,需要給形參分配存儲單元,形參變量是實(shí)參變量的副本;如果傳遞的是對象,還將調(diào)用拷貝構(gòu)造函數(shù),
資料共享平臺
《C/C++ 筆試、面試題目大匯總》(http://www.msguai.com)。因此,當(dāng)參數(shù)傳遞的數(shù)據(jù)較大時,用引用比用一般變量傳遞參數(shù)的效率和所占空間都好。(3)使用指針作為函數(shù)的參數(shù)雖然也能達(dá)到與使用引用的效果,但是,在被調(diào)函數(shù)中同樣要給形參分配存儲單元,且需要重復(fù)使用”*指針變量名”的形式進(jìn)行運(yùn)算,這很容易產(chǎn)生錯誤且程序的閱讀性較差;另一方面,在主調(diào)函數(shù)的調(diào)用點(diǎn)處,必須用變量的地址作為實(shí)參。而引用更容易使用,更清晰。
4. 在什么時候需要使用“常引用”?
如果既要利用引用提高程序的效率,又要保護(hù)傳遞給函數(shù)的數(shù)據(jù)不在函數(shù)中被改變,就應(yīng)使用常引用。常引用聲明方式:const 類型標(biāo)識符 &引用名=目標(biāo)變量名;
例1
int a ;
const int &ra=a;
ra=1; //錯誤
a=1; //正確
例2
string foo( );
void bar(string & s);
那么下面的表達(dá)式將是非法的:
bar(foo( ));
bar(“hello world”);
原因在于foo( )和”hello world”串都會產(chǎn)生一個臨時對象,而在C++中,這些臨時對象都是const類型的。因此上面的表達(dá)式就是試圖將一個const類型的對象轉(zhuǎn)換為非const類型,這是非法的。
【C/C++ 筆試、面試題目大】相關(guān)文章:
C++面試筆試題目07-16
C/C++筆試題目大全08-22
阿里巴巴C++工程師筆試題目10-17
金光紙業(yè)面試筆試題目09-29
恒華偉業(yè)筆試面試題目07-12
輔導(dǎo)員面試和筆試會考到題目08-02
職場經(jīng)典筆試題目07-21
UBI 筆試題目05-19
APL筆試題目10-05
用友筆試題目08-15