C++試題庫--精選文檔_第1頁
C++試題庫--精選文檔_第2頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、選擇題1.在C+中,函數(shù)原型不能標(biāo)識( D )A.函數(shù)的返回類型B.函數(shù)參數(shù)的個數(shù)C.函數(shù)參數(shù)類型D.函數(shù)的功能2.在C+程序中,對象之間的相互通信通過( B )A.繼承實現(xiàn)B.調(diào)用成員函數(shù)實現(xiàn)C.封裝實現(xiàn)D.函數(shù)重載實現(xiàn)3.對于任意一個類,析構(gòu)函數(shù)的個數(shù)最多為( B ) A.0 B.1 C.2 D.3 4.友元關(guān)系不能( A )A.繼承B.是類與類的關(guān)系C.是一個類的成員函數(shù)與另一個類的關(guān)系D.提高程序的運行效率5.語句ofstream f(SALARY.DAT,ios:appios:binary)的功能是建立流對象f,試圖打開文件SALARY.DAT 并與之連接,并且( A )A.若文件存

2、在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文件B.若文件存在,將其置為空文件;若文件不存在,打開失敗C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文件D.若文件存在,打開失敗;若文件不存在,建立一個新文件6.下面說法正確的是( B )A.內(nèi)聯(lián)函數(shù)在運行時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方B.內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方C.類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義 D.類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline 定義7.可以用p.a 的形式訪問派生類對象p 的基類成員a,其中a 是( D )A.私有繼承的公有成員B.公有繼承的私

3、有成員C.公有繼承的保護(hù)成員D.公有繼承的公有成員8.在公有派生情況下,有關(guān)派生類對象和基類對象的關(guān)系,不正確的敘述是( C )A.派生類的對象可以賦給基類的對象 B.派生類的對象可以初始化基類的引用C.派生類的對象可以直接訪問基類中的成員 D.派生類的對象的地址可以賦給指向基類的指針9. 派生類對象可訪問基類中的什么成員( A )A.公有繼承的公有成員          B.公有繼承的私有成員    C.公有繼承的保護(hù)成員   

4、60;      D.私有繼承的公有成員10. 定義析構(gòu)函數(shù)時,應(yīng)該注意(C)A.其名與類名完全相同          B.返回類型是void類型    C.無形參,也不可重載          D.函數(shù)體中必須有delete語句11. 如果類A被說明成類B的友元,則( D )。  

5、60;A.類A的成員即類B的成員    B.類B的成員即類A的成員    C.類A的成員函數(shù)不得訪問類B的成員    D.類B不一定是類A的友元  12. 面向?qū)ο蟪绦蛟O(shè)計將數(shù)據(jù)與( A )放在一起,做為一個相互依存、不可分割的整體來處理。A. 對數(shù)據(jù)的操作 B. 信息 C. 數(shù)據(jù)隱藏 D. 數(shù)據(jù)抽象13. 在類中聲明轉(zhuǎn)換函數(shù)時不能指定( A )。A. 參數(shù)   B. 訪問權(quán)限   C. 操作   D. 標(biāo)識符

6、60; 14. 在派生類中重新定義虛函數(shù)時必須在( A )方面與基類保持一致。    A. 參數(shù)類型   B. 參數(shù)名字  C. 操作內(nèi)容    D. 賦值15. 下面關(guān)于C+中類的繼承與派生的說法錯誤的是( C )。A基類的protected成員在公有派生類的成員函數(shù)中可以直接使用B基類的protected成員在私有派生類的成員函數(shù)中可以直接使用C公有派生時,基類的所有成員訪問權(quán)限在派生類中保持不變D基類的protected成員在保護(hù)派生類的成員函數(shù)中可以直接使用16. 重

7、載賦值操作符時,應(yīng)聲明為( C )函數(shù)。    A. 友元   B. 虛   C. 成員   D. 多態(tài)17. 在下面選項中,對類的拷貝構(gòu)造函數(shù)的聲明形式是(B)A. A:A(&) B. A:A(const A&) C. A:A(A) D. void A:A(A&a)18. 下面關(guān)于成員函數(shù)特征的描述中,錯誤的是(A)A成員函數(shù)不可以設(shè)置參數(shù)的默認(rèn)值 B成員函數(shù)可以重載C成員函數(shù)可以是內(nèi)聯(lián)函數(shù)D成員函數(shù)可以是靜態(tài)的19. 下面關(guān)于類模板敘述不正確的是( B )

8、A可以有多個構(gòu)造函數(shù) B. 類模板是模板類的實例C. 一個類模板可以用來實例化多個模板類 D. 類模板可以有多個參數(shù)20. 要使一個類成為抽象類,這個類應(yīng)具有的條件是(A)A至少有一個純虛函數(shù)  B. 至少有一個虛函數(shù)C. 只含有一個純虛函數(shù) D. 只含有一個虛函數(shù)21. 有關(guān)運算符重載正確的描述是( D )A. C+語言允許在重載運算符時改變運算符的操作個數(shù) B. C+語言允許在重載運算符時改變運算符的優(yōu)先級C. C+語言允許在重載運算符時改變運算符的結(jié)合性 D. C+語言允許在重載運算符時改變運算符的原來的功能22. 下列說法正確的是( D )。A. 一個類的對象可以是

9、另一個類的成員 B. 一個類可以作為另一個類的派生類C. 一個類可以在另一個類定義體進(jìn)行定義 D. 以上說法均正確23. 下列各類函數(shù)中,(C)不是類的成員函數(shù)。A. 構(gòu)造函數(shù) B. 析構(gòu)函數(shù) C. 友元函數(shù) D. 拷貝構(gòu)造函數(shù)24. 派生類的對象對它的基類成員中( A )是可以訪問的。A. 公有繼承的公有成員 B. 公有繼承的私有成員 C. 公有繼承的保護(hù)成員 D. 私有繼承的公有成員25. 下面有關(guān)構(gòu)造函數(shù)和new運算符關(guān)系正確的說法是( D )Anew運算符不調(diào)用構(gòu)造函數(shù) B. 構(gòu)造函數(shù)一定調(diào)用new運算符C當(dāng)生成新類的實例時,先調(diào)用new運算符,然后調(diào)用構(gòu)造函數(shù)進(jìn)行初始化D.

10、 當(dāng)new運算符動態(tài)產(chǎn)生類的對象時,new運算符也自動調(diào)用構(gòu)造函數(shù)26. 下面有關(guān)類性質(zhì)的說法錯誤的是( D ) A.一個類可以有多個構(gòu)造函數(shù),但只有一個析構(gòu)函數(shù) B.析構(gòu)函數(shù)和構(gòu)造函數(shù)都不能有返回類型C.不能給析構(gòu)函數(shù)指定參數(shù) D.一個類中不可以聲明具有類類型的數(shù)據(jù)成員27. 下面關(guān)于友元函數(shù)描述正確的是(C)A友元函數(shù)是類的成員B友元函數(shù)在類的外部聲明C友元函數(shù)在類中聲明D. 友元函數(shù)能夠派生28. 下面敘述正確的是( D ) A. 派生類不可以使用私用派生 B. 保護(hù)派生時,基類的保護(hù)成員在派生類中是公有的C. 對基類成員的訪問允許二義性 D. 賦值兼容規(guī)則也適用于多重繼承的組合29.

11、下面描述中,表達(dá)錯誤的是( B ) A. 公有繼承時基類中的public成員在派生類中仍是public的B. 公有繼承是基類中的private成員在派生類中仍是private的 C. 公有繼承時基類中的protected成員在派生類中仍是protected的D. 私有繼承時基類中的public成員在派生類中是private的30. 拷貝構(gòu)造函數(shù)的參數(shù)是( )A. 某個對象名 B. 某個對象的成員名 C. 某個對象的引用名 D. 某個對象的指針名31.下列關(guān)于構(gòu)造函數(shù)的描述中,錯誤的是( )A構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) B. 構(gòu)造函數(shù)在定義類對象時自動執(zhí)行C構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù)D. 構(gòu)造函數(shù)不可

12、以重載32. 數(shù)組作為函數(shù)的形參時,把數(shù)組名作為實參,傳遞給函數(shù)的是( )A該數(shù)組的首地址 B該數(shù)組的元素個數(shù)C該數(shù)組中的各元素值 D該數(shù)組的大小33. 通過一個析構(gòu)函數(shù)調(diào)用虛函數(shù)時,C+系統(tǒng)對該調(diào)用采用()。A. 動態(tài)聯(lián)編 B. 靜態(tài)聯(lián)編 C. 不確定是哪種聯(lián)編 D.函數(shù)重載34. 下面有關(guān)重載函數(shù)的說法中正確的是(C) A重載函數(shù)必須具有不同的返回值類型;B重載函數(shù)形參個數(shù)必須;C重載函數(shù)必須有不同的形參列表;D重載函數(shù)名可以不同;35. 使用string類建立對象的不正確方式是(D)。A. string str(“OK”); B. string str=”O(jiān)K”; C. string s

13、tr; D. string str=OK;36. 關(guān)于C+中類的繼承與派生的說法錯誤的是( C)A基類的protected成員在公有派生類的成員函數(shù)中可以直接使用B基類的protected成員在私有派生類的成員函數(shù)中可以直接使用C私有派生時,基類的所有成員訪問權(quán)限在派生類中保持不變D繼承可以分為單一繼承與多重繼承37. 一個類的析構(gòu)函數(shù)( A )A.唯一的 B.允許重載 C.至多可有兩個 D.只能是缺省的38. 下面關(guān)于靜態(tài)成員描述正確的是(B)A. 靜態(tài)成員是對象的數(shù)據(jù)成員B. 靜態(tài)成員是對象的成員C. 靜態(tài)成員是對象的成員函數(shù)D. 靜態(tài)成員不是對象的成員39. 下面敘述正確的是(D)A基類

14、的保護(hù)成員在派生類中仍然是保護(hù)的 B基類的公有成員在派生類中仍然是公有的C基類的私有成員在派生類中是私有的 D從基類派生時,可以有3種派生方法40說明內(nèi)聯(lián)函數(shù)的關(guān)鍵字是( )。A. inlineB. virtualC. defineD. static41假定CAb為一個類,則執(zhí)行CAb oX;語句時將自動調(diào)用該類的( ) A. 有參構(gòu)造函數(shù) B. 無參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù) 42cin是某個類的標(biāo)準(zhǔn)對象的引用,該類是( )。A. ostreamB. istreamC. stdoutD. stdin43下面的哪個保留字不能作為函數(shù)的返回類型?( )A. void B.

15、int C. new D. long44不能參與重載的運算符是( )。A. 類 B. 函數(shù) C. 函數(shù)模板 D. 運算符45由于數(shù)據(jù)隱藏的需要,靜態(tài)數(shù)據(jù)成員通常被說明為( )。A. 私有的 B. 公有的 C. 保護(hù)的 D. 不可訪問的46編譯時多態(tài)性使用什么獲得?( )A. 重載函數(shù) B. 繼承 C. 虛函數(shù) D. B和C 47拷貝構(gòu)造函數(shù)的參數(shù)通常是( )。A. 無特殊要求B. 指向?qū)ο蟮闹羔楥. 自已類對象的常引用D. 對象48C+有幾種聯(lián)編?( )A. 1種B. 2種C. 3種D. 4種49基類和派生類可以分別稱為( )。A. “大類”和“小類”B. “父類”和“子類”C. “小類”和“

16、大類”D. “子類”和“父類”50下列對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是( A )。A)構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載B)構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載C)構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)可以重載D)構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)不能重載51在函數(shù)定義前加上關(guān)鍵字“inline”,表示該函數(shù)被定義為( B )。A)重載函數(shù) B)內(nèi)聯(lián)函數(shù)C)成員函數(shù) D)普通函數(shù)52下面有關(guān)重載函數(shù)的說明中, ( C )是正確的。A)重載函數(shù)必須具有不同的返回值類型B) 重載函數(shù)形參個數(shù)必須不同C) 重載函數(shù)必須具有不同的形參列表D) 重載函數(shù)名可以不同53已知: print( )函數(shù)是一個類的常成員函數(shù),它無

17、返回值,下列表示中,正確的是 ( A )。A)void print( ) const; B) const void print( ); C) void const print( ); D) void print(const)54假定Myclass為一個類,那么下列的函數(shù)說明中( D )為該類的析構(gòu)函數(shù)。A) void Myclass( ); B) Myclass( int n);C) Myclass( ); D) Myclass( )55下面類的定義中有( C ) 處錯誤。 class myclassint i=0; public: void myclass( );myclass(value)

18、; A) 1 B)2 C)3 D)456說明虛函數(shù)的關(guān)鍵字是( B )。A. inlineB. virtualC. defineD. static57cout是某個類的標(biāo)準(zhǔn)對象的引用,該類是( A )。A. ostreamB. istreamC. stdoutD. stdin58、一個類的所有對象共享的是( D )。 A. 私有數(shù)據(jù)成員B. 公有數(shù)據(jù)成員C. 保護(hù)數(shù)據(jù)成員D. 靜態(tài)數(shù)據(jù)成員59靜態(tài)成員函數(shù)沒有( B )。 A. 返回值 B. this指針 C. 指針參數(shù) D. 返回類型60. 關(guān)于C+與C語言關(guān)系的描述中,( D)是錯誤的。 A.C語言是C+語言的一個子集 B.C語言與C+語言

19、是兼容的 C.C+語言對C語言進(jìn)行了一些改進(jìn) D.C+語言和C語言都是面向?qū)ο蟮?1按照標(biāo)識符的要求,(A )符號不能組成標(biāo)識符。 A.連接符 B.下劃線 C.大小寫字母 D.數(shù)字字符62. 為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是與( C)組成配對關(guān)系。 A.縮排位置相同的if B.在其之前未配對的if C.在其之前未配對的最近的if D.同一行上的if63. 在"int A 3=1,3,2,4,5,6,0;"中,A22的值是( C)。 A.1 B.0 C.6 D.264. 設(shè)"Char *s;",以下正確的表達(dá)式是(B)。 A

20、.s="Computer" B.*s="Computer" C.*s="Computer" D.*s='C'65. 對于"int *pa5;"的描述中,(D )是正確的。 A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素 B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量 C.pa 5表示某個元素的第5個元素的值 D.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針66. 在下列表示引用的方法中,(A)是正確的。已知:int m=10; A.int &x

21、=m; B.int &y=10; C.int &z; D.floAt &t=&m;67. 下列for循環(huán)的次數(shù)為( B)。for(i=0, x=0; !x&&i<=5; i+) A.5 B.6 C.1 D.無限68. 對于C/C+語言的函數(shù),下列敘述中正確的是(A)。 A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套 B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套 C.函數(shù)的定義和調(diào)用都不能嵌套 D.函數(shù)的定義和調(diào)用都可以嵌套69. 在一個被調(diào)用函數(shù)中,關(guān)于return語句使用的描述,( D)是錯誤的。 A.被調(diào)用函數(shù)中可以不用return語句 B.

22、被調(diào)用函數(shù)中可以使用多個return語句 C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語句 D.被調(diào)用函數(shù)中,一個return語句可以返回多個值給調(diào)用函數(shù)70. 在一個函數(shù)中,要求通過函數(shù)來實現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用( A )。 A.內(nèi)聯(lián)函數(shù) B.重載函數(shù) C.遞歸調(diào)用 D.嵌套調(diào)用71. ( D )不是構(gòu)造函數(shù)的特征 A.構(gòu)造函數(shù)的函數(shù)名與類名相同 B.構(gòu)造函數(shù)可以重載 C.構(gòu)造函數(shù)可以設(shè)置缺省參數(shù) D.構(gòu)造函數(shù)必須指定類型說明72. 已知:類A中一個成員函數(shù)說明如下:voiD Set(A&A);其中,A&的含義是( C )。 A.指向類A的

23、指針為A B.將A的地址值賦給變量Set C.A是類A對象的引用,用來作函數(shù)Set()的參數(shù) D.變量A與A按位與作為函數(shù)Set( )的參數(shù)73. 已知:print( )函數(shù)是一個類的常成員函數(shù),它無返回值,下列表示中,( A )是正確的。 A.void print( ) const; B.const void print( ); C.void const print( ); D.void print(const);74. 關(guān)于虛函數(shù)的描述中,( C )是正確的。 A.虛函數(shù)是一個static類型的成員函數(shù) B.虛函數(shù)是一個非成員函數(shù) C.基類中說明了虛函數(shù)后,派生類中將其對應(yīng)的函數(shù)可不必說明

24、為虛函數(shù) D.派生類的虛函數(shù)與基類的虛函數(shù)具有不同的參數(shù)個數(shù)和類型75. 關(guān)于new運算符的下列描述中,( D)是錯的。 A.它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組 B.使用它創(chuàng)建的對象和對象數(shù)組可以使用運算符Delete刪除 C.使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù) D.使用它創(chuàng)建對象數(shù)組時必須指定初始值76若有定義 int a=3, *p=&a ;則 *p的值是( B )A)常量a的地址值 B)3 C)變量p的地址值 D)無意義 77在下列關(guān)于C+與C語言關(guān)系的各描述中,( D )是錯誤的。A)C語言是C+的一個子集; B)C語言與C+是兼容的;C)C+對C語言進(jìn)行了一些改進(jìn); D) C+和C

25、語言都是面向?qū)ο蟮摹?8在下列關(guān)于類概念的各描述中,( A )是錯誤的。A)類就是C語言中的結(jié)構(gòu)體類型;B)類是具有共同行為的若干對象的統(tǒng)一描述體;C)類是創(chuàng)建對象的樣板;D)類是抽象數(shù)據(jù)類型的實現(xiàn)。79采用函數(shù)重載的目的在于( D )A) 實現(xiàn)共享 B)減少空間 C) 提高速度 D)使用方便,提高可讀性 80下列的各類函數(shù)中,( C ) 不是類的成員函數(shù)。A)構(gòu)造函數(shù) B)析構(gòu)函數(shù)C)友元函數(shù) D)拷貝初始化構(gòu)造函數(shù)81下列靜態(tài)數(shù)據(jù)成員特性中,( D )是錯誤的。A) 說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符static;B) 靜態(tài)數(shù)據(jù)成員要在類體外進(jìn)行初始化;C) 引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)

26、成員名前加<類名>和作用域分辨符;D) 靜態(tài)數(shù)據(jù)成員不是所有對象共有的。82以下各選項中,正確的函數(shù)聲明是( C )A)double func( int x , int y ) B)int func( int x ; int y ) ;C)float func( int x , int y );D)char func( int x , y ) ;填空題1.定義類的動態(tài)對象數(shù)組時,系統(tǒng)只能夠自動調(diào)用該類的(無參)構(gòu)造函數(shù)對其進(jìn)行初始化。2.在C+程序設(shè)計中,建立繼承關(guān)系倒掛的樹應(yīng)使用 (單一)繼承。3.表達(dá)式cout<<end1 還可表示為(cout<<n)。

27、4.基類的公有成員在派生類中的訪問權(quán)限由(訪問控制)決定。5.C+支持的兩種多態(tài)性分別是編譯時的(操作重載)(靜態(tài))多態(tài)性和運行時的(虛函數(shù))(動態(tài))多態(tài)性。6.C+中語句const char * const p=hello;所定義的指針p 和它所指的內(nèi)容都不能被(改變(重新賦值)。7.假定AB 為一個類,則語句AB(AB&x);為該類(拷貝)構(gòu)造函數(shù)的原型說明。8.將關(guān)鍵字const 寫在成員函數(shù)的(函數(shù)頭)和(函數(shù)體)之間時,所修飾的是this 指針。9.在C+中,訪問一個對象的成員所用的運算符是(·),訪問一個指針?biāo)赶虻膶ο蟮某蓡T所用的運算符是(->)。10.派

28、生類從一個或多個以前定義的該類的(基類)。11. 運算符重載時,其函數(shù)名由 (operator運算符) 構(gòu)成。成員函數(shù)重載雙目運算符時,左操作數(shù)是(當(dāng)前對象),右操作數(shù)是(函數(shù)形參)。12C+支持面向?qū)ο蟪绦蛟O(shè)計的四個要素是:(封裝性)、(繼承性)、(抽象性)和(多態(tài)性)。 。13模板分為(類)模板和(函數(shù))模板。14. 定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字(inline),定義友元所用的關(guān)鍵字為(friend)。15. 當(dāng)一個派生類具有多個基類時,這種繼承方式稱為(多重繼承)。16. 通過一個構(gòu)造函數(shù)調(diào)用虛函數(shù)時,C+系統(tǒng)對該調(diào)用采用(靜態(tài))聯(lián)編。17. 任何類中允許有(private)、(public

29、)、(protected)三種訪問控制類型的成員,數(shù)據(jù)成員和成員函數(shù)的默認(rèn)類型為(private)。18. 只有在(公有)繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。19. 運算符重載使用的兩種方式是(成員函數(shù))和(友元函數(shù))。20成員名限定的符號是( :),它可以在引用成員時避免(二義性)。21. 在用class定義一個類時,數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問權(quán)限是(privated)。22. 已知int DBL(int n)return n+n;和long DBL(long n)return n+n;是一個函數(shù)模板的兩個實例,則該函數(shù)模板的定義是(template <class T&

30、gt; T DBL(T n)return n+n;)。(要求寫出函數(shù)模板的完整定義)23. 靜態(tài)數(shù)據(jù)成員必須在(類外)進(jìn)行初始化。24. 含有純虛函數(shù)的類稱為(抽象類)。25. 若Queue是一個類,aQueue是它的一個對象,而且該類中定義了一個靜態(tài)成員函數(shù)show()則在類外對該成員的函數(shù)進(jìn)行調(diào)用的方式可以為(aQueue.show()和(Queue:show()。26. 定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字為(inline),定義友元所用的關(guān)鍵字為(friend)。27. 使用成員函數(shù)重載運算符時,若運算符是二元的,則參數(shù)表中有(1)個操作數(shù),此時(當(dāng)前對象)作為此運算符的左操作數(shù)。28、C+程序中

31、,對象的初始化和清理工作,分別由兩個特殊的成員函數(shù)(構(gòu)造函數(shù))和(析構(gòu)函數(shù))來完成。29、在c+中,分別用(變量)與(函數(shù))來表現(xiàn)某種事物的所具有的屬性和行為,并且將它們封裝在一起,形成一種抽象數(shù)據(jù)類型(類)。30、當(dāng)用一個對象初始化另一個新的同類對象,將調(diào)用(),其特殊之處在于:形參是()。31、模板是C+支持參數(shù)化的工具,我們通常用類模板和函數(shù)模板,這些只是面向?qū)ο蟮模ǎ┬缘囊粋€方面。32、如果在某個類定義中用關(guān)鍵字()聲明了一個外部函數(shù)(也許是其他類的一個成員)后,這個外部函數(shù)就可以例外的訪問該類的任何成員,這個外部函數(shù)稱為類的()函數(shù)。33、可以將類的成員聲明為static,使其成為(

32、)。這樣的成員在編譯時被創(chuàng)建,其實例只有一個,為所有該類的對象()。34、()是動態(tài)動態(tài)聯(lián)編的基礎(chǔ)。它是非靜態(tài)的成員函數(shù),經(jīng)過()之后,在類族中可以實現(xiàn)運行過程中的多態(tài)。35、程序中有如下語句:int a=30;int b=a+;int c=+a; 則b=( ),c=()數(shù)組A2020中,第一個元素是(),最后一個元素是()36、聲明一個int型指針,請為其動態(tài)分配含10個元素的地址空間:( )。37在類中必須聲明成員函數(shù)的(原型),成員函數(shù)的(實現(xiàn))部分可以寫在類外。38如果需要在被調(diào)函數(shù)運行期間,改變主調(diào)函數(shù)中實參變量的值,則函數(shù)的形參應(yīng)該是(引用)類型或 (指針)類型。39(抽象)類只能

33、作為基類使用,而不能聲明它的對象。40進(jìn)行函數(shù)重載時,被重載的同名函數(shù)如果都沒有用const修飾,則它們的形參(個數(shù))或 (類型)必須不同。41通過一個(常)對象只能調(diào)用它的常成員函數(shù),不能調(diào)用其他成員函數(shù)。42函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接地調(diào)用(自身)。43拷貝構(gòu)造函數(shù)的形參必須是(本類對象的引用)。44設(shè)函數(shù)max是由函數(shù)模板實現(xiàn)的,并且max(3.5, 5)和max(3, 5)都是正確的函數(shù)調(diào)用,則此函數(shù)模板具有( 2 )個類型參數(shù)。45在C+中,函數(shù)重載與虛函數(shù)幫助實現(xiàn)了類的(多態(tài))性。46由static修飾的數(shù)據(jù)成員為該類的所有對象(共享)。47重載函數(shù)在參數(shù)類型或參數(shù)個數(shù)上不同

34、,但(函數(shù)名)相同。48使用new建立的動態(tài)對象在不用時必須用( delete )釋放所占用的空間。49重載運算符” 的函數(shù)名為( oprator- )。 50C+中類的用途有兩種, 一種是類的實例化, 即生成類的對象, 另一種是通過( 繼承 ),派生出新的類。 51編譯時多態(tài)性可以用( 重載 )函數(shù)實現(xiàn)。52一個C+程序的執(zhí)行從(main)函數(shù)開始,到 (main)函數(shù)結(jié)束 。53在C+ 中, 函數(shù)在定義時可以預(yù)先定義出默認(rèn)的形參值。默認(rèn)形參值必須按(從右到左) 的順序定義。因為在調(diào)用時,實參初始化形參是按(從左到右)的順序。54類是邏輯上相關(guān)的(函數(shù))與(數(shù)據(jù))的封裝。特殊類的對象擁有其一

35、般類的全部屬性與服務(wù),稱作特殊類對一般類的(繼承)。55在C+中,函數(shù)的參數(shù)有兩種傳遞方式,它們是值傳遞和(地址或指針或引用傳遞)。 56當(dāng)一個成員函數(shù)被調(diào)用時,該成員函數(shù)的(this指針)指向調(diào)用它的對象。 57在基類和派生類中,派生類可以定義其基類中不具備的數(shù)據(jù)和操作。對兩個有相同名字的數(shù)據(jù)成員進(jìn)行訪問時,如果沒有(作用域分隔符限定時),對此數(shù)據(jù)成員的訪問將出現(xiàn)歧義。58拷貝構(gòu)造函數(shù)使用(引用)作為參數(shù)初始化創(chuàng)建中的對象。59在公有繼承的情況下,基類數(shù)據(jù)成員在派生類中的訪問權(quán)限(保持不變)。60 用new申請某一個類的動態(tài)對象數(shù)組時,在該類中必須能夠匹配到(沒有形參的或缺省參數(shù))構(gòu)造函數(shù),

36、否則應(yīng)用程序會產(chǎn)生一個編譯錯誤。 61靜態(tài)數(shù)據(jù)成員在類外進(jìn)行初始化,且靜態(tài)數(shù)據(jù)成員的一個拷貝被類的所有對象(共享)。 62為了避免可能出現(xiàn)的歧義,C+對ifelse語句配對規(guī)則規(guī)定為:else總是與(與最近的if)配對。 63 面向?qū)ο蟮某绦蛟O(shè)計有四大特征,它們是抽象、封裝、 (繼承)、 (多態(tài))。64 在C+中,定義重載函數(shù)時,應(yīng)至少使重載函數(shù)的參數(shù)個數(shù)或參數(shù)類型(不同);在基類和派生類中,成員函數(shù)的覆蓋是指(派生類成員函數(shù)與在基類被覆蓋的成員函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和返回值類型均相同)。 65 構(gòu)造函數(shù)與析構(gòu)函數(shù)除功能不同外,在定義形式上,它們的區(qū)別還包括構(gòu)造函數(shù)名與類名相同,而析構(gòu)函數(shù)

37、名是在類名前加一個、(析構(gòu)函數(shù)沒有參數(shù))、(析構(gòu)函數(shù)可以定義為虛函數(shù))。 66 動態(tài)聯(lián)編要滿足兩個條件,它們是(被調(diào)用的成員函數(shù)是虛函數(shù))、(用指針或引用調(diào)用虛函數(shù))。67 在C+類中,有一種不能定義對象的類,這樣的類只能被繼承,稱之為(抽象類),定義該類至少具有一個(純虛函數(shù))。 68 在C+類中,const關(guān)鍵字可以修飾對象和成員函數(shù),const對象不能(被修改),const成員函數(shù)不能(修改類數(shù)據(jù)成員)。 69 C+中沒有字符串類型,字符串是通過(字符數(shù)組)來表示的,每一個字符串都有一個結(jié)尾字符(0)。 70 C+中沒有輸入輸出語句,輸入輸出是通過(輸入輸出庫)實現(xiàn)的, 寫出一條打印整型

38、變量n的輸出語句:(cout<<n;)。 71 舉出C+中兩種代碼復(fù)用的方式:(繼承)、 (重載)。判斷正誤題(判斷正誤,在題后的括號內(nèi),正確的劃上“”錯誤的劃上“×”。)1不可以定義抽象類的對象。( )2內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在第一次調(diào)用內(nèi)聯(lián)函數(shù)之前。( )3模板函數(shù)與函數(shù)模板的意義完全相同。( × )4只有常成員函數(shù)才可以操作常對象。( )5引用可以不初始化。( × )6構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) ( )7類的析構(gòu)函數(shù)的作用是對象的初始化 ( × )8cout的默認(rèn)輸出對象是鍵盤, cin的默認(rèn)輸入對象是屏幕 ( × )9抽象類可

39、以用來直接創(chuàng)建對象。 ( × )10常對象可以調(diào)用任意成員函數(shù)。 ( × )簡答題1、 虛析構(gòu)函數(shù)有什么作用?解答要點:對象銷毀時,需要調(diào)用析構(gòu)函數(shù)。在多態(tài)調(diào)用時,是用基類的指針訪問派生類的對象。如果析構(gòu)函數(shù)是非虛函數(shù),則基類指針只能訪問基類的析構(gòu)函數(shù),而不能訪問派生類的析構(gòu)函數(shù),導(dǎo)致派生類對象銷毀時,沒有調(diào)用派生類的析構(gòu)函數(shù),只是調(diào)用了基類的析構(gòu)函數(shù)。如果把析構(gòu)函數(shù)定義成虛函數(shù),則可克服這個問題。2、 拷貝構(gòu)造函數(shù)在哪幾種情況下調(diào)用?解答要點:用一個對象初始化另一個對象時當(dāng)用對象作為函數(shù)參數(shù)傳遞時當(dāng)函數(shù)返回對象時3、 函數(shù)重載與函數(shù)覆蓋有什么不同,它們與多態(tài)有什么關(guān)系?

40、解答要點:函數(shù)重載是指函數(shù)名相同,而函數(shù)的參數(shù)個數(shù)或類型不同;覆蓋是指在派生類中成員函數(shù)與基類成員函數(shù)的函數(shù)名、參數(shù)個數(shù)、類型與返回值均相同;C+中正是通過虛函數(shù)的覆蓋,實現(xiàn)多態(tài)的功能。4、 C+繼承是如何工作的?答:繼承使得派生類能夠使用基類的公有和保護(hù)成員,從而實現(xiàn)代碼的復(fù)用,派生類可以增加成員,也可以隱藏和覆蓋基類的成員。對于公有繼承,基類成員的訪問權(quán)限在派生類保持不變。5、 類與對象有什么區(qū)別?答:類是類型,是對象的抽象,對象是類的具體實例。一個類可以有多個對象,每個對象都有自己的存儲單元,而類不占存儲單元。6 若程序員沒有定義拷貝構(gòu)造函數(shù),則編譯器自動生成一個缺省的拷貝構(gòu)造函數(shù),它可

41、能會產(chǎn)生什么問題?解答要點:當(dāng)對象含有指針數(shù)據(jù)成員,并用它初始化同類型的另一個對象時,缺省的拷貝構(gòu)造函數(shù)只能將該對象的數(shù)據(jù)成員復(fù)制給另一個對象,而不能將該對象中指針?biāo)赶虻膬?nèi)存單元也復(fù)制過去。這樣,就可能出現(xiàn)同一內(nèi)存單元釋放兩次,導(dǎo)致程序運行出錯。7 簡述成員函數(shù)、全局函數(shù)和友元函數(shù)的差別。解答要點:以下幾點必須說清楚:成員函數(shù)是在類內(nèi)部定義的,作用域在類的內(nèi)部,成員函數(shù)可以訪問類的數(shù)據(jù)成員(公有、保護(hù)和私有數(shù)據(jù)成員),可以調(diào)用該類的其它成員函數(shù)(公有、保護(hù)和私有成員函數(shù)),可以調(diào)用全局函數(shù)。如果友元函數(shù)是另一個類的公有成員函數(shù),則該類的成員函數(shù)也只能通過那個類的對象調(diào)用,不能調(diào)用那個類的保護(hù)

42、和私有成員函數(shù)。非本類成員函數(shù)(其它類成員函數(shù)或全局函數(shù))可以通過該類的對象訪問該類的公有數(shù)據(jù)成員和調(diào)用該類的的公有成員函數(shù)。不是在類中定義的成員函數(shù)都是全局函數(shù)。如果某一個函數(shù)(全局函數(shù)或類的成員函數(shù))定義為另一個類的友元函數(shù),需要在那個類中用friend關(guān)鍵字聲明,友元函數(shù)并不是類的成員,它的定義自然是在那個類的外面。8 簡述結(jié)構(gòu)化的程序設(shè)計、面向?qū)ο蟮某绦蛟O(shè)計的基本思想。解答要點:結(jié)構(gòu)化的程序設(shè)計將數(shù)據(jù)和對數(shù)據(jù)的操作分離,程序是由一個個的函數(shù)組成的,面向?qū)ο蟮某绦蛟O(shè)計將數(shù)據(jù)和操作封裝在一起,程序是由一個個對象組成的,對象之間通過接口進(jìn)行通信,它能夠較好地支持程序代碼的復(fù)用。9 結(jié)構(gòu)str

43、uct和類class有什么異同?解答要點:struct和class都可以定義類,但是缺省訪問權(quán)限說明時,struct的成員是公有的,而class的成員是私有的。在C+中,struct可被class代替。程序閱讀分析題1、分析程序,寫出程序的輸出結(jié)果(7分)。#include<iostream>using namespace std;class Clockprivate:int Hour,Minute,Second;public:void SetTime(int NewH=24,int NewM=24,int NewS=24)Hour=NewH;Minute=NewM;Second=

44、NewS;void ShowTime()cout<<Hour<<":"<<Minute<<":"<<Second<<endl;void main()cout<<"time set and output: "<<endl;Clock MyClock;MyClock.SetTime();MyClock.ShowTime();MyClock.SetTime(8,30,30);MyClock.ShowTime();輸出結(jié)果: time set an

45、d output:24:24:248:30:302、分析程序,寫出程序的輸出結(jié)果(7分)。#include<iostream>using namespace std;class pointprivate:int x,y;public:point(int xx=0,int yy=0)x=xx;y=yy;cout<<"構(gòu)造函數(shù)被調(diào)用"<<endl;point(point &p);int GetX()return x;int GetY()return y;point:point(point &p)x=p.x;y=p.y;cout

46、<<"拷貝構(gòu)造函數(shù)被調(diào)用"<<endl;void main()point A(4,5);point B(A);cout<<B.GetX()<<endl;輸出結(jié)果:構(gòu)造函數(shù)被調(diào)用拷貝構(gòu)造函數(shù)被調(diào)用43.在括號中注釋相應(yīng)的語句(8分)#include <iostream>using namespace std;/有動態(tài)棧區(qū)的stack類class stackint stacksize;long *buffer;long *sp;public:stack(int size)/( 1 )stacksize=size;sp=

47、buffer=new longsize;stack()/( 2 )delete buffer;/( 3 )void push(long );long pop();void stack:push(long data)if(sp>=buffer+stacksize)cout<<"overflow!n"else*sp=data;sp+;long stack:pop()if(sp<=buffer)cout<<"stack is empty!n"return 0;else return(*-sp);void main()stac

48、k *pa=new stack(10);/( 4 )pa->push(351);/ ( 5 )pa->push(7075461);cout<<endl;cout<<pa->pop()<<"is popped.n"delete pa;(1)(2)(3)(4)(5)4請在以下兩題中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:#include <iostream>#include <string>using namespace std;class Base

49、 private:char msg30;protected:int n;public:Base(char s,int m=0):n(m) strcpy(msg,s);void output(void) cout<<n<<endl<<msg<<endl;class Derived1:public Baseprivate:int n;public:Derived1(int m=1): Base("Base",m-1) n=m; void output(void) cout<<n<<endl; Base:ou

50、tput(); ;class Derived2:public Derived1private:int n;public:Derived2(int m=2): Derived1(m-1) n=m; void output(void) cout<<n<<endl; Derived1:output(); ;int main()Base B("Base Class",1);Derived2 D;B.output();D.output();40運行結(jié)果:1Base Class210Base(2)程序:#include <iostream>using

51、 namespace std;class Samppublic:void Setij(int a,int b)i=a,j=b;Samp()cout<<"Destroying."<<i<<endl;int GetMuti()return i*j;protected:int i;int j;int main()Samp *p;p=new Samp5;if(!p)cout<<"Allocation errorn"return 1;for(int j=0;j<5;j+)pj.Setij(j,j);for(in

52、t k=0;k<5;k+)cout<<"Muti"<<k<<" is:" <<pk.GetMuti()<<endl;deletep;return 0;運行結(jié)果:Muti0 is:0Muti1 is:1Muti2 is:4Muti3 is:9Muti4 is:16Destroying.4Destroying.3Destroying.2Destroying.1Destroying.05請在以下兩題中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:#i

53、nclude <iostream>using namespace std;class Vectorpublic:Vector(int s=100);int& Elem(int ndx);void Display(void);void Set(void);Vector(void);protected:int size;int *buffer;Vector:Vector(int s)buffer=new intsize=s;int& Vector:Elem(int ndx)if(ndx<0|ndx>=size)cout<<"error in index"<<endl;exit(1);return bufferndx;void Vector:Display(void)for(int j=0; j<size; j+)cout<&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論