《《C++程序設(shè)計》期末考試及答案》由會員分享,可在線閱讀,更多相關(guān)《《C++程序設(shè)計》期末考試及答案(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 C+程序設(shè)計期末考試試卷A. int *p=new int (10);B. int *p=new int10;C. int *p=new int;int *p=new int40(0)11.下列關(guān)于虛基類的描述,錯誤的是()A. 設(shè)置虛基類的目的是為了消除二義性B. 虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用C. 若同一層中包含多個虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用:號位座考生注意: 1本試卷共有四道大題,滿分100 分。D. 若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)2考試時間 90 分鐘。12.已知: print( ) 函數(shù)是一個類的常成員函數(shù),它
2、無返回值,下列表示中,()是正確的。3卷面整潔,字跡工整。A. void print( ) const;B. const void print( );C. void const print( );D. void print(const);4填寫內(nèi)容不得超出密封線。13.在下面有關(guān)靜態(tài)成員函數(shù)的描述中,正確的是()。A. 在靜態(tài)成員函數(shù)中可以使用this 指針 B.在建立對象前,就可以為靜態(tài)數(shù)據(jù)成員賦值密總分題號一二三四C. 靜態(tài)成員函數(shù)在類外定義時,要用static 前綴D. 靜態(tài)成員函數(shù)只能在類外定義核分人題分3021242514.在下列關(guān)鍵字中,用于說明類中公有成員的是()。A. publ
3、icB. privateC. protectedD. friend復(fù)查人得分15. 以下有關(guān)繼承的敘述正確的是()。一、單項選擇題(每小題2 分,共 30 分)A. 構(gòu)造函數(shù)和析構(gòu)函數(shù)都能被繼承B. 派生類是基類的組合1.C+ 是一種()的程序設(shè)計語言。C. 派生類對象除了能訪問自己的成員以外,不能訪問基類中的所有成員:A. 面向?qū)ο驜. 即可面向過程,又可面向?qū)ο驝. 面向過程D. 面向系統(tǒng)D. 基類的公有成員一定能被派生類的對象訪問號2.在下面有關(guān)析構(gòu)函數(shù)特征的描述中,正確的是()。二、判斷題(每題 3 分,共 21 分)學(xué)A. 一個類中可以定義多個析構(gòu)函數(shù)B. 析構(gòu)函數(shù)名與類名完全相同1
4、.this 指針 ,所以它們只能訪問靜態(tài)的數(shù)據(jù)成員。靜態(tài)的成員函數(shù)沒有隱含的()C. 析構(gòu)函數(shù)不能指定返回類型D. 析構(gòu)函數(shù)可以有一個或多個參數(shù)2.通過類對象可以訪問類中所有的成員。()3.下面對于友元函數(shù)描述正確的是()。3.構(gòu)造函數(shù)是可以被派生類繼承的。 ()封A. 友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義B. 友元函數(shù)是類的成員函數(shù)4.構(gòu)造函數(shù)和析構(gòu)函數(shù)都可以是虛函數(shù)。():C. 友元函數(shù)破壞了類的封裝性和隱藏性D. 友元函數(shù)不能訪問類的私有成員5.只有類中全部函數(shù)都為純虛函數(shù)時,該類才被稱為抽象類。()業(yè)4.下面描述中,表達(dá)錯誤的是()。專6.對于同一個運算符來說,重載的運算符的優(yōu)先級比未重載
5、的運算符的優(yōu)先級高。()A. 公有繼承時基類中的public 成員在派生類中仍是public 的7.一個類的友元一定是另一個類的成員函數(shù)。()B. 公有繼承時基類中的private 成員在派生類中仍是private 的:名姓C. 公有繼承時基類中的protected 成員在派生類中仍是 protected 的D. 保護(hù)繼承時基類中的public 成員在派生類中是private 的5.所謂多態(tài)性是指()A. 不同的對象調(diào)用不同名稱的函數(shù)B. 不同的對象調(diào)用相同名稱的函數(shù)C. 一個對象調(diào)用不同名稱的函數(shù)D. 一個對象調(diào)用不同名稱的對象6.重載賦值操作符時,應(yīng)聲明為()函數(shù)。線A. 友元B. 虛C.
6、 成員D. 多態(tài)7.下列對模板的聲明錯誤的是()。A. template B. template C. template D. template 三、簡答題(每小題6 分,共 24 分)1. 什么是封裝性?請舉例說明。2. 什么是函數(shù)重載和運算符重載?為什么要使用重載?3. 拷貝構(gòu)造函數(shù)在哪幾種情況下被調(diào)用?:站授函8.下列類中()不是輸入流類istream 的派生類。A. ifstreamB.istrstreamC. iostreamD. ofstream4. 什么是類?什么是對象?對象與類的關(guān)系是什么?9.()不是構(gòu)造函數(shù)的特征。A. 構(gòu)造函數(shù)的函數(shù)名與類名相同B 構(gòu)造函數(shù)可以重載C. 構(gòu)
7、造函數(shù)可以設(shè)置缺省參數(shù)D 構(gòu)造函數(shù)必須指定類型說明10. 下列語句中錯誤的是()。第 1 頁共 3 頁 (C+ 程序設(shè)計 )四、程序分析題(前三小題各6 分,第五題7 分,共 25 分)1. 指出下面程序中的 1 處錯誤,并說明原因。#includeclass Pointint X,Y;public:Point( )X=0;Y=0;Point(int x=0,int y=0)X=x;Y=y;void display( )coutX,Yendl;void main()Point p;p.display();答:2. 指出下面程序中的 1 處錯誤,并說明原因。#include class CTes
8、t public:CTest()x=20; private:int x;friend void friend_f(CTest fri);void friend_f(CTest fri) fri.x=55;void main()CTest c1,c2;c1.friend_f(c2);答:3. 寫出下面程序的運行結(jié)果 。#include class Testprivate:int num;public:Test(int n=0)num=n;num+;Test( )cout ” Destructor is active,number= ” numendl;void main( )Test x2;co
9、ut ” Exiting main ” endl;答:4. 寫出下面程序的運行結(jié)果。#includeclass Testprivate:static int val;int a;public:static int func();static void sfunc(Test &r);int Test:val=20;int Test:func()val-;return val;void Test:sfunc(Test &r) r.a=25; coutResult3=r.a; void main()coutResultl=Test:func()endl;Test a;coutResult2=a.fu
10、nc()endl;Test:sfunc(a);答:第 2 頁共 3 頁 (C+程序設(shè)計)C+程序設(shè)計期末考試答案3Exiting mainDestructor is active,number=1Destructor is active,number=1一、 選擇題( 15 2)41.B2.C3.C4.D5.BResultl=196.C7.B8.D9.D10.DResult2=1811.B12.A13.B14.A15.BResult3=25二、 判斷題( 7 2)1. 2. 3. 4. 5. 6. 7. 三、 簡答題( 4 4)1. 解答要點:所謂數(shù)據(jù)的封裝,就是將數(shù)據(jù)結(jié)構(gòu)和作用于數(shù)據(jù)結(jié)構(gòu)上的
11、操作組成一個實體,數(shù)據(jù)的表示方式和對數(shù)據(jù)的操作細(xì)節(jié)被隱藏起來,用戶通過操作接口對數(shù)據(jù)進(jìn)行操作。對于用戶來說,只知道如何通過操作接口對該數(shù)據(jù)進(jìn)行操作,而并不知道是如何操作的,也不知道數(shù)據(jù)是如何表示的,這就是數(shù)據(jù)的封裝。例如我們經(jīng)常使用的手機(jī),機(jī)殼將零件和線路封裝了起來,我們在接打電話或收發(fā)短信時是通過手機(jī)面板上的按鍵(接口)。2. 解答要點:(1) 函數(shù)重載是指一個標(biāo)識符可同時用于為多個函數(shù)命名;(2) 運算符重載是指一個運算符可同時用于多種運算。也就是說,相同名字的函數(shù)或運算符在不同的場合可以表現(xiàn)出不同的行為。(3) 使用重載的目的是為了更好地表達(dá)行為共享,可以使程序員在只知道操作的一般含義而
12、不知道操作的具體細(xì)節(jié)的情況下能正確地對某個對象使用一個操作。另外,使用重載的直接益處是減少了程序員記憶操作名字的負(fù)擔(dān)3. 解答要點:(1) 用一個對象初始化另一個對象時;(2) 當(dāng)用對象作為函數(shù)參數(shù)傳遞時 ;(3) 當(dāng)程序中需要創(chuàng)建臨時對象時(如函數(shù)返回對象時)。4. 解答要點:(1) 類是一組具有共同的屬性特征和行為特征的對象的抽象;(2) 對象就是系統(tǒng)中用來描述客觀事物的一個實體,它是構(gòu)成系統(tǒng)的一個基本單位,由一組屬性和一組行為構(gòu)成。(3) 類和對象之間的關(guān)系是抽象和具體的關(guān)系,類是對多個對象進(jìn)行抽象的結(jié)果,對象是類的具體實現(xiàn)。四、 程序分析題(4 6)1.錯誤位置: Point p;錯誤原因:當(dāng)生成無參對象時,缺省參數(shù)的構(gòu)造函數(shù)和默認(rèn)參數(shù)的構(gòu)造函數(shù)會產(chǎn)生混淆。2錯誤位置: c1.friend_f(c2);錯誤原因: friend_f() 是類的友元函數(shù),應(yīng)直接調(diào)用,而不能用調(diào)用對象成員的方式第 3 頁共 3 頁 (C+ 程序設(shè)計)