三、判斷題
1.Java程序中的起始類名稱必須與存放該類的文件名相同。()
答案:正確
2.Unicode是用16位來表示一個字的。()
答案:正確
3.原生類中的數(shù)據(jù)類型均可任意轉(zhuǎn)換。()
答案:錯誤
1.分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。
答案:
BOOL : if ( !a ) orif(a)
int : if ( a == 0)
float : const EXPRESSION EXP = 0.000001
if ( a < EXP && a >-EXP)
pointer : if ( a !=NULL) or if(a == NULL)
2.請說出const與#define 相比,有何優(yōu)點?
答案:1) const常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產(chǎn)生意料不到的錯誤。
2) 有些集成化的調(diào)試工具可以對const 常量進行調(diào)試,但是不能對宏常量進行調(diào)試。
3.簡述數(shù)組與指針的區(qū)別?
數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局數(shù)組),要么在棧上被創(chuàng)建。指針可以隨時指向任意類型的內(nèi)存塊。
(1)修改內(nèi)容上的差別
char a[]= “hello”;
a[0] = ‘X’;
char *p = “world”; // 注意p 指向常量字符串
p[0] = ‘X’;// 編譯器不能發(fā)現(xiàn)該錯誤,運行時錯誤
(2) 用運算符sizeof 可以計算出數(shù)組的容量(字節(jié)數(shù))。sizeof(p),p為指針得到的是一個指針變量的字節(jié)數(shù),而不是p 所指的內(nèi)存容量。C++/C語言沒有辦法知道指針所指的內(nèi)存容量,除非在申請內(nèi)存時記住它。注意當數(shù)組作為函數(shù)的參數(shù)進行傳遞時,該數(shù)組自動退化為同類型的指針。
char a[] ="hello world";
char *p = a;
cout<< sizeof(a) << endl; // 12字節(jié)
cout<< sizeof(p) << endl; // 4 字節(jié)
計算數(shù)組和指針的內(nèi)存容量
voidFunc(char a[100])
{
cout<< sizeof(a) << endl; // 4 字節(jié)而不是100字節(jié)
}
4.類成員函數(shù)的重載、覆蓋和隱藏區(qū)別?
答案:
a.成員函數(shù)被重載的特征:
(1)相同的范圍(在同一個類中);
(2)函數(shù)名字相同;
(3)參數(shù)不同;
(4)virtual 關(guān)鍵字可有可無。
b.覆蓋是指派生類函數(shù)覆蓋基類函數(shù),特征是:
(1)不同的范圍(分別位于派生類與基類);
(2)函數(shù)名字相同;
(3)參數(shù)相同;
(4)基類函數(shù)必須有virtual 關(guān)鍵字。
c.“隱藏”是指派生類的函數(shù)屏蔽了與其同名的基類函數(shù),規(guī)則如下:
(1)如果派生類的函數(shù)與基類的函數(shù)同名,但是參數(shù)不同。此時,不論有無virtual關(guān)鍵字,基類的函數(shù)將被隱藏(注意別與重載混淆)。
(2)如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒有virtual 關(guān)鍵字。此時,基類的函數(shù)被隱藏(注意別與覆蓋混淆)
|
|
||
|
|