c復(fù)習(xí)題答案分析_第1頁
c復(fù)習(xí)題答案分析_第2頁
c復(fù)習(xí)題答案分析_第3頁
c復(fù)習(xí)題答案分析_第4頁
c復(fù)習(xí)題答案分析_第5頁
免費預(yù)覽已結(jié)束,剩余6頁可下載查看

下載本文檔

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

文檔簡介

1、重慶交通大學(xué)電信類15級C+面向?qū)ο蟪绦蛟O(shè)計課程復(fù)習(xí)題(2016年 5月)一、選擇題1 .以下說法中正確的是(B )。A. C+程序總是從第一個定義的函數(shù)開始執(zhí)行B. C+程序總是從main函數(shù)開始執(zhí)行C. C+函數(shù)必須有返回值,否則不能使用函數(shù)D. C+程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個程序文件中2 .下面有關(guān)構(gòu)造函數(shù)的描述中,正確的是( B )。A.構(gòu)造函數(shù)可以帶有返回值B.構(gòu)造函數(shù)的名字與類名完全相同C.構(gòu)造函數(shù)必須帶有參數(shù)D.構(gòu)造函數(shù)必須定義,不能缺省3 .在聲明類時,下面的說法正確的是(C )。A.可以在類的聲明中給數(shù)據(jù)成員賦初值B.數(shù)據(jù)成員的數(shù)據(jù)類型可以是registerC.

2、 private , public , protected可以按任意順序出現(xiàn)D.沒有用private , public , protected定義的數(shù)據(jù)成員是公有成員4 .在下面有關(guān)析構(gòu)函數(shù)特征的描述中,正確的是(A. 一個類可以有多個析構(gòu)函數(shù)C.析構(gòu)函數(shù)不能指定返回類型5 .構(gòu)造函數(shù)是在(B )時被執(zhí)行的。A.程序編譯B.創(chuàng)建對象6 .下面有關(guān)靜態(tài)成員函數(shù)的描述中,正確的是(C )。B.析構(gòu)函數(shù)與類名完全相同D.析構(gòu)函數(shù)可以有一個或多個參數(shù)C.創(chuàng)建類D.程序裝入內(nèi)存B)A.在靜態(tài)成員函數(shù)中可以使用this指針B.在建立對象前,就可以為靜態(tài)數(shù)據(jù)成員賦值C.靜態(tài)成員函數(shù)在類外定義是,要用 sta

3、tic前綴D.靜態(tài)成員函數(shù)只能在類外定義7.下面有關(guān)友員函數(shù)的描述中,真確的說法是( A )A.友員函數(shù)是獨立于當前類的外部函數(shù)B. 一個友員函數(shù)不可以同時定義為兩個類的友員函數(shù)C.友員函數(shù)必須在類的外部進行定義D.在類的外部定義友員函數(shù)時必須加上friend關(guān)鍵字8 .友員的作用之一(A)A.提高程序的運行效率C.實現(xiàn)數(shù)據(jù)的隱蔽性9 .使用派生類的主要原因是(A ) A.提高代碼的可重用性C.加強類的封裝性10 .在C+中繼承方式有幾中(CA. 1B. 211 .派生類的對象對它的基類成員中( A.公有繼承的公有成員; C.公有繼承的保護成員;B.加強類的封裝D.增加成員函數(shù)的種類B.提高程

4、序的運行效率D.實現(xiàn)數(shù)據(jù)的隱藏C. 3D.4A)是可以訪問的。B.公有繼承的私有成員;D.私有繼承的公有成員。12 .類中定義的成員默認為(B )訪問屬性。A. publicB. privateC. protected D. friend13 .下列存儲類標識符中,要求通過函數(shù)來實現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速 度,選用(A )合適。A.內(nèi)聯(lián)函數(shù); B.重載函數(shù);C.遞歸調(diào)用; D.嵌套調(diào)用。14.C+C語言作了很多改進,下列描述中( 了面向?qū)ο蟆.增加了一些新的運算符;C.規(guī)定函數(shù)說明必須用原型;D )使得C語言發(fā)生了質(zhì)變,從面向過程變成B.允許函數(shù)重載,并允許設(shè)置缺省參數(shù);D.

5、引進了類和對象的概念;15.按照標識符的要求,(A )符號不能組成標識符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符16.下列變量名中,(A )是合法的。A CHINA B byte-size c doubleD A+a17.下列各種函數(shù)中,(C )不是類的成員函數(shù)。A構(gòu)造函數(shù)B析構(gòu)函數(shù)C友元函數(shù) D拷貝構(gòu)造函數(shù)18.下列(A )是正確的語句。B a=17C x+yD cout<<"n"19.不能作為函數(shù)重載判斷的依據(jù)的是(B)A.返回類型B. constC.參數(shù)個數(shù)D.參數(shù)類型20 .通常,拷貝構(gòu)造函數(shù)的參數(shù)是(C )B.某個對象的成員名D.某個對象的指針

6、名A.某個對象名C.某個對象的引用名21 .下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是(C)A類的不同對象有不同的靜態(tài)數(shù)據(jù)成員值B類的每個對象都有自己的靜態(tài)數(shù)據(jù)成員 C靜態(tài)數(shù)據(jù)成員是類的所有對象共享的數(shù)據(jù)D靜態(tài)數(shù)據(jù)成員不能通過類的對象調(diào)用22 .假定AB為一個類,則執(zhí)行AB x;語句時將自動調(diào)用該類的(B )A.有參構(gòu)造函數(shù)B.無參構(gòu)造函數(shù) C.拷貝構(gòu)造函數(shù)D.賦值構(gòu)造函數(shù)23 .C+程序從上機到得到結(jié)果的幾個操作步驟依次是(B )。A.編譯、編輯、連接、運行B.編輯、編譯、連接、運行C.編譯、運行、編輯、連接D.編輯、運行、編輯、連接24 .假定一條定義語句為“int a10, x, *p=a;,

7、若要把數(shù)組a中下標為3的元素值賦給x,則不正確的語句為( D)。A. x=p3;B. x=*(a+3);C. x=a3;D. x=*p+3;25 .關(guān)于封裝,下列說法中不正確的是( D )。A.通過封裝,對象的全部屬性和操作結(jié)合在一起,形成一個整體B.通過封裝,一個對象的實現(xiàn)細節(jié)被盡可能地隱藏起來(不可見)C.通過封裝,每個對象都成為相對獨立的實體D.通過封裝,對象的屬性都是不可見的26 .預(yù)處理命令在程序中都是以(B)符號開頭的。A. *B. # C. & D. 27 .存儲以下數(shù)據(jù),占用存儲字節(jié)最少的是( B )。A. 0 B. 0' C. "0"D.

8、0.0(D)符號作為分隔28 .程序運行中需要從鍵盤上輸入多于一個數(shù)據(jù)時,各數(shù)據(jù)之間應(yīng)使用符。A.空格或逗號B.逗號或回車C.逗號或分號D.空格或回車29 .假定變量m定義為“int m=7;,則定義變量A. int p=&m;B. int *p=&m;30 .下面的哪個保留字不能作為函數(shù)的返回類型?A. voidB. int31 .采用重載函數(shù)的目的是(D )。A.實現(xiàn)共享B.減少空間p的正確語句為(B )。D. int *p=m;C. int &p=*m;(C)C. newD.longC.提高速度D.使用方便,提高可讀性32.假定AB為一個類,則(C)為該類的拷貝構(gòu)

9、造函數(shù)的原型說明。A. AB(AB x); B. AB(int x);C. AB(AB& x);D. void AB(AB& x);33、C+C語言作了很多改進,下列描述中( D )使得C語言發(fā)生了質(zhì)變,從面向過程變 成了面向?qū)ο?。A、增加了一些新的運算符;B、允許函數(shù)重載,并允許設(shè)置缺省參數(shù);C、規(guī)定函數(shù)說明必須用原型;D、引進了類和對象的概念;34、所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個實體,這 實體也就是(A)。A.類 B.對象 C.函數(shù)體 D.數(shù)據(jù)塊35、關(guān)于new運算符的下列描述中,( C )是錯誤的。A、它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組;

10、B、使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運算符delete刪除;C、使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù);D、使用它創(chuàng)建對象數(shù)組時必須指定初始值;36、( D)不是構(gòu)造函數(shù)的特征。A、構(gòu)造函數(shù)的函數(shù)名與類名相同;B、構(gòu)造函數(shù)可以重載;C、構(gòu)造函數(shù)可以設(shè)置缺省參數(shù);D、構(gòu)造函數(shù)必須指定類型說明。37、假定一個類的卞造函數(shù)為B(int x,int y)a=x-;b=a*y-;, 則執(zhí)行B x(3,5);語句后,x.a和x.b的值分別為(C)A、3和 5B、5和 3C、3和 15D、20和538、關(guān)于成員函數(shù)特征的下列描述中,( A )是錯誤的。A、成員函數(shù)一定是內(nèi)聯(lián)函數(shù);B、成員函數(shù)可以重載;C、成員函數(shù)

11、可以設(shè)置缺省參數(shù)值;D、成員函數(shù)可以是靜態(tài)的;39、在公有繼承的情況下,基類成員在派生類中的訪問權(quán)限( B )。A、受限制B、保持不變C、受保護 D、不受保護40、友元的作用是(A )。A、提高程序的運用效率;B、加強類的封裝性;C、實現(xiàn)數(shù)據(jù)的隱藏性;D、增加成員函數(shù)的種類;41、在C+中,關(guān)于下列設(shè)置缺省參數(shù)值的描述中,( B )是正確的。A、不允許設(shè)置缺省參數(shù)值;B、在指定了缺省值的參數(shù)右邊,不能出現(xiàn)沒有指定缺省值的參數(shù);C、只能在函數(shù)的定義性聲明中指定參數(shù)的缺省值;D、設(shè)置缺省參數(shù)值時,必須全部都設(shè)置;42、關(guān)于delete運算符的下列描述中,( C )是錯誤的。A、它必須用于new返回

12、的指針;B、使用它刪除對象時要調(diào)用析構(gòu)函數(shù);C、對一個指針可以使用多次該運算符;D、指針名前只有一對方括號符號,不管所刪除數(shù)組的維數(shù)。43、const int *p說明不能修改(C )。A、p指針;B、p指針指向的變量;C、p指針指向的數(shù)據(jù)類型;D、上述A、B、C三者;44、當需要打開A盤上白以xxk.dat文件用于輸入時,則定義文件流對象的語句為(B)。A、fstream fin("A:xxk.dat "、,1ifstBeam fin( "A:xxk.dat " ,ios:nocreate)C、 ofstream fin( "A:xxk.da

13、t > )fstrfeam fin( "A:xxk.dat " ,ios:app)45、派生類的對象對它的基類成員中( A )是可以訪問的。A、公有繼承的公有成員;B、公有繼承的私有成員;C、公有繼承的保護成員;D、私有繼承的公有成員; 46、在 int a=3; *p=&a;中,*p 的值是(D )。A、變量a的地址值B、無意義C、變量p的地址值D、 347.下述靜態(tài)數(shù)據(jù)成員的特征中,( D )是錯誤的。A.說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符static;B.靜態(tài)數(shù)據(jù)成員要在類體外進行初始化;C.引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加< 類名和作用域

14、運算符;D.靜態(tài)數(shù)據(jù)成員不是所有對象所共用的。48. ( A)是析構(gòu)函數(shù)的特征。A. 一個類中只能定義一個析構(gòu)函數(shù); B.析構(gòu)函數(shù)與類名沒有關(guān)系;Jm賦值為C.析構(gòu)函數(shù)的定義只能在類體內(nèi); D.析構(gòu)函數(shù)可以有各個或多個參數(shù)。49.已知:p是一個指向類A數(shù)據(jù)成員m的指針,A1是類A的一個對象。如果要給5, ( C )是正確的。A. A1.p=5;B. A1->p=5;C. A.*p=5;D. *A1.p=5;50.派生類的構(gòu)造函數(shù)的成員初始化列中,不能包含( C )。A.基類的構(gòu)造函數(shù);B.派生類中子對象的初始化;C.基類的子對象初始化;D.派生類中一般數(shù)據(jù)成員的初始化51.派生類的對象對

15、它的基類成員中( A)是可以訪問的。A.公有繼承的公有成員;B.公有繼承的私有成員;C.公有繼承的保護成員;D.私有繼承的公有成員。52 . C+類體系中,不能被派生類繼承的有( A )。A.構(gòu)造函數(shù)B.虛函數(shù)C.靜態(tài)成員函數(shù)D.賦值操作函數(shù)53 .下面標識符中正確的是( A )。A. _abc B . 3ab C . intD . +ab54 .下列哪項(D )不是面向?qū)ο蟪绦蛟O(shè)計的主要特征?a.封裝b.繼承c.多態(tài)d.結(jié)構(gòu)、填空題1 . C+語言的頭文件與源程序文件擴展名分別是( .h )和(.cpp)。2 .在C+程序中使用基本輸入與輸出流時需要包含的頭文件名是(<iostream

16、.h> )3 .在C+語言中,惟一的一個三目運算運算符是(?:)。4 . C+中當一個函數(shù)無返回值時,則函數(shù)的類型是( void )。5 . 一個類中可以有(多)個構(gòu)造函數(shù),只能有 (一 )個析構(gòu)函數(shù)。6 .一般情況下,按照面向?qū)ο蟮囊?,把類中的?shù)據(jù)成員(屬性)定義為(私有 )權(quán)限, 而把成員函數(shù)(方法)定義為(公有 )權(quán)限.7 .在定義類白對象時,C+程序?qū)⒆詣诱{(diào)用該對象的( 構(gòu)造)函數(shù)初始化對象自身.在撤銷 類的對象時,C+程序?qū)⒆詣诱{(diào)用該對象的( 析構(gòu))函數(shù).8 .類繼承中,缺省的繼承方式是(私有繼承 ).9 .在C+語言中,用轉(zhuǎn)義字符序列('n')或操縱符(en

17、dl )表示輸出一個換行符。10 .表達式a=a + l表不成增量表達式為(+a )。11 .當不需要函數(shù)返回任何值時,則應(yīng)把該函數(shù)類型定義為( void )。12.用于輸出表達式值的標準輸出流對象是( cout )。,用于從鍵盤上為變量輸人值的標 準輸人流對象是(cin )。13、變量分為全局和局部兩種,(全局變量默認初始化為0)。變量沒有賦初值時,其值是不確定的。14、假定類AB中有一個公用屬性的靜態(tài)數(shù)據(jù)成員bb,在類外不通過對象名訪問該成員bb的寫法為(AB:bb )。15、類的成員分為 數(shù)據(jù)成員 和 成員函數(shù)。16、一個 類 和 對象 的關(guān)系,正如基本數(shù)據(jù)類型與該類型的變量一樣,如 i

18、nt x;。17、對一個類中的數(shù)據(jù)成員的初始化可以通過構(gòu)造函數(shù)中的賦值 實現(xiàn),也可以通過構(gòu)造函數(shù)中的初始化列表實現(xiàn)。18、類有兩種用法:一種是定義對象,即生成類的對象;另一種是通過 派生,派生出新的類。19、C+語言提供的 多態(tài) 機制允許一個派生類繼承多個基類,即使這些基類是相互無關(guān)I20、聲明虛函數(shù)的方法是在基類中的成員函數(shù)原型前加上關(guān)鍵字virtual 。21、如果一個類中有一個或多個純虛函數(shù),則這個類稱為虛基類 。22、靜態(tài)數(shù)據(jù)成員在定義或說明時,前面要加上關(guān)鍵字static 。23、如果成員函數(shù)不需要訪問類的非靜態(tài) 成員,則可以把它聲明為靜態(tài)成員函數(shù)。24、友元可以是全局函數(shù).也可以是

19、其他成員函數(shù) 。25、若需要把一個函數(shù)“void fun();定義'為一個類A的友元函數(shù),則應(yīng)在類 A的定義中加入一條語句:friend void fun()。26、運算符函數(shù)中的關(guān)鍵字是operator 它和運算符 一起組成該運算符函數(shù)的函數(shù)名。27、類中運算符重載一般采用兩種形式: 成員函數(shù)和友元函數(shù)。28、面向?qū)ο蟪绦蛟O(shè)計的3大機制為:封裝性、繼承性和多態(tài)性。2、類的訪問權(quán)限有 private > protected 和 public 三種。29、構(gòu)造函數(shù)是 對象 被創(chuàng)建時自動執(zhí)行,對象消失時自動執(zhí)行的成員函數(shù)稱為析構(gòu)函數(shù).30、如果類A繼承了類B,則類A稱為 派生類,類B

20、稱為基類。31、如果一個特定的類型 S當且僅當它提供了類型 T的行為時,則稱類型 S是類型T的子類。32、在類定義中,將 =0 置于虛函數(shù)的函數(shù)原型的末尾可以聲明該函數(shù)為純虛函數(shù)。33、類的靜態(tài)成員分為 靜態(tài)數(shù)據(jù)成員 和靜態(tài)成員函數(shù)。34、友元函數(shù)的聲明可以放在類的私有部分,也可以放在類的 公有部分,它們是沒有區(qū)別的。35、如果說類B是類A的友元類,則類B的所有成員函數(shù)都是類 A的成員函數(shù)。36、設(shè)a和b是兩個整型變量,我們用 a+b的形式求這兩個變量的和;設(shè)c和d為浮點型變量,我們用c+d的形式求這兩個變量的和。顯然運算符“+具有不同的用途,這是 運算符重載 的例子。37、當建立 新的對象

21、時,程序自動調(diào)用該類的構(gòu)造函數(shù)。38、在C+中有二種參數(shù)傳遞方式:傳值和引用。39、模板對處理數(shù)據(jù)的類型的要求不同可以分為兩種類型:函數(shù)模板和類模板。40、異常是通過 檢查(try) 拋出(throw ) 和捕捉 (catch ) 來實現(xiàn)的。41、虛函數(shù)實現(xiàn)了 C+的多態(tài)機制,類實現(xiàn)了 C+的封裝機制。42、面向?qū)ο蟪绦蛟O(shè)計的 繼承機制 提供了重復(fù)利用程序資源的一種途徑。三、問答題(請以譚浩強版教材為重點,理解和掌握下列基本概念,做出簡明 扼要的回答,內(nèi)容自行翻書)1 .在C+中,結(jié)構(gòu)(struct)和類(class)的區(qū)別是什么?答:在c里結(jié)構(gòu)體只能定義數(shù)據(jù)成員,不能有函數(shù)成員,但可以定義函

22、數(shù)指針來模擬函數(shù)。在 C+中,結(jié)構(gòu)體和類除了默認的訪問方式和默認的繼承方式不同外,其它都一樣。結(jié)構(gòu)體默認是公 有,類默認是私有。2 .構(gòu)造函數(shù)和析構(gòu)函數(shù)的主要作用是什么?答:構(gòu)造函數(shù)只是起初始化值的作用,但實例化一個對象的時候,可以通過實例去傳遞參數(shù),從主函數(shù)傳遞到其他的函數(shù)里面,這樣就使其他的函數(shù)里面有值了。析構(gòu)函數(shù)與構(gòu)造函數(shù)的作用相反,用于撤銷對象的一些特殊任務(wù)處理,可以是釋放對象分配的內(nèi)存空間。四、讀程序題,寫出程序運行輸出的結(jié)果1. #include <iostream>using namespace std;class Student private :char Name

23、8;float Math;float Chinese;public :float average;void SetName(char *name);void SetMath(float math);void SetChinese(float ch);float GetAverage(void);class Student1 char ID12;public :float total; / 標記 1"“void SetTotal(float sum) ; /標記 2"“;void main() Student S1,S2;Student1 S3;cout<<&qu

24、ot;the size of object S1 is:" <<sizeof(S1)<<endl;cout<<"the size of object S3 is:" <<sizeof(S3)<<endl; (a)該程序運行后,輸出結(jié)果是:the size of object S1 is: 20the size of object S3 is:16(b)如果修改程序:在 標記1”代碼行前面加入static ,在 標記2”代碼行前加入virtual ,那么輸出結(jié)果是:the size of object S1

25、 is: 20the size of object S3 is:16(注:sizeof ()對類體的計算如下:1 .空類的大小為1字節(jié)。 3. c+規(guī)定任何類型的指針大小為4個字節(jié)。5.靜態(tài)變量在計算時是不做考慮的。92.int占4字節(jié),char型占1字節(jié),float型占4字節(jié)。4. 一個虛函數(shù)也占4個字節(jié)的指針內(nèi)存。6.其他成員函數(shù)(如構(gòu)造,析構(gòu)函數(shù))不納入計算,因為成員函數(shù)是針對類體的;而sizeof ()只針對實例。2. #include <iostream>using namespace std;class Afloat x,y;public:A(float a, float b)x=a;y=b;cout<<"初始化自動局部對象 n"A()x=0; y

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論