版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、模擬題一一、單項選擇題(本大題共10 小題,每小題2 分,共20 分)在每小題列出的四個選項中只有一個選項是符合題目要求的,請將其代碼填在題后的括號內。錯選或未選均無分。1.在C+中,函數(shù)原型不能標識( )A.函數(shù)的返回類型 B.函數(shù)參數(shù)的個數(shù) C.函數(shù)參數(shù)類型 D.函數(shù)的功能2.在C+程序中,對象之間的相互通信通過( )A.繼承實現(xiàn) B.調用成員函數(shù)實現(xiàn) C.封裝實現(xiàn) D.函數(shù)重載實現(xiàn)3.對于任意一個類,析構函數(shù)的個數(shù)最多為( )A.0 B.1 C.2 D.34.下面函數(shù)模板定義中不正確的是( )A.template B.templateQF(Qx) QF(Qx)return Q+x ret
2、urn x+x; C.templateD.templateTF(Tx) TF(Tx)return x*x return x1 5.友元關系不能( )A.繼承 B.是類與類的關系C.是一個類的成員函數(shù)與另一個類的關系 D.提高程序的運行效率6.語句ofstream f(SALARY.DAT,ios:appios:binary)的功能是建立流對象f,試圖打開文件SALARY.DAT 并與之連接,并且( )A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文件B.若文件存在,將其置為空文件;若文件不存在,打開失敗C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文件D
3、.若文件存在,打開失?。蝗粑募淮嬖?,建立一個新文件7.下面說法正確的是( )A.內聯(lián)函數(shù)在運行時是將該函數(shù)的目標代碼插入每個調用該函數(shù)的地方B.內聯(lián)函數(shù)在編譯時是將該函數(shù)的目標代碼插入每個調用該函數(shù)的地方C.類的內聯(lián)函數(shù)必須在類體內定義D.類的內聯(lián)函數(shù)必須在類體外通過加關鍵字inline 定義8.可以用p.a 的形式訪問派生類對象p 的基類成員a,其中a 是( )A.私有繼承的公有成員 B.公有繼承的私有成員C.公有繼承的保護成員 D.公有繼承的公有成員9.在公有派生情況下,有關派生類對象和基類對象的關系,不正確的敘述是( )A.派生類的對象可以賦給基類的對象B.派生類的對象可以初始化基類的
4、引用C.派生類的對象可以直接訪問基類中的成員D.派生類的對象的地址可以賦給指向基類的指針10.對于類定義class Apublic:virtual void func1( ) void func2( ) class B:public Apublic:void func1( )coutclass B func 1end1virtual void func2( )coutclass B func 2end1下面正確的敘述是( )A. A:func2( )和B:func1( )都是虛函數(shù)B. A:func2( )和B:func1( )都不是虛函數(shù)C. B:func1( )是虛函數(shù),而A:func2(
5、 )不是虛函數(shù)D. B:func1( )不是虛函數(shù),而A:func2( )是虛函數(shù)二、填空題(本大題共10 小題,每小題2 分,共20 分)不寫解答過程,將正確的答案寫在每小題的橫線處。錯填或不填均無分。11.定義類的動態(tài)對象數(shù)組時,系統(tǒng)只能夠自動調用該類的_構造函數(shù)對其進行初始化。12.在C+程序設計中,建立繼承關系倒掛的樹應使用_繼承。13.表達式coutend1 還可表示為_。14.基類的公有成員在派生類中的訪問權限由_決定。15.C+支持的兩種多態(tài)性分別是_多態(tài)性和_多態(tài)性。16.C+中語句const char * const p=hello;所定義的指針p 和它所指的內容都不能被_。
6、17.假定AB 為一個類,則語句AB(AB&x);為該類_構造函數(shù)的原型說明。18.將關鍵字const 寫在成員函數(shù)的_和_之間時,所修飾的是this 指針。19.在C+中,訪問一個對象的成員所用的運算符是_,訪問一個指針所指向的對象的成員所用的運算符是_。20.派生類從一個或多個以前定義的該類的_模擬題一參考答案一、單項選擇題(本大題共10 小題,每小題2 分,共20 分)1.D 2.B 3.B 4.A 5.A6.A 7.B 8.D 9.C 10.C第二部分非選擇題(共80 分)二、填空題(本大題共10 小題,每小題2 分,共20 分)11.無參12.單一(或單)13.coutn(或cout
7、12,或cout”)20.基類模擬題二一、單項選擇題(每題2分,共20分)1. 派生類對象可訪問基類中的什么成員( )A.公有繼承的公有成員B.公有繼承的私有成員C.公有繼承的保護成員D.私有繼承的公有成員2. 定義析構函數(shù)時,應該注意( )。A.其名與類名完全相同B.返回類型是void類型 C.無形參,也不可重載 D.函數(shù)體中必須有delete語句3. 如果類A被說明成類B的友元,則( )。A.類A的成員即類B的成員 B.類B的成員即類A的成員 C.類A的成員函數(shù)不得訪問類B的成員D.類B不一定是類A的友元 4. 應在下列程序劃線處填入的正確語句是( ) #include classBase
8、 public: voidfun()coutBase:funendl; ; classDerived:publicBase voidfun() _/ 顯示調用基類的函數(shù)fun() coutDerived:funfun();5. 面向對象程序設計將數(shù)據(jù)與( )放在一起,做為一個相互依存、不可分割的整體來處理。 A. 對數(shù)據(jù)的操作 B. 信息 C. 數(shù)據(jù)隱藏 D. 數(shù)據(jù)抽象6. 在類中聲明轉換函數(shù)時不能指定( )。A. 參數(shù)B. 訪問權限 C. 操作D. 標識符7. 在派生類中重新定義虛函數(shù)時必須在( )方面與基類保持一致。 A. 參數(shù)類型B. 參數(shù)名字 C. 操作內容D. 賦值8. 下面關于C+
9、中類的繼承與派生的說法錯誤的是( )。A基類的protected成員在公有派生類的成員函數(shù)中可以直接使用B基類的protected成員在私有派生類的成員函數(shù)中可以直接使用C公有派生時,基類的所有成員訪問權限在派生類中保持不變D基類的protected成員在保護派生類的成員函數(shù)中可以直接使用9. 重載賦值操作符時,應聲明為( )函數(shù)。 A. 友元B. 虛 C. 成員D. 多態(tài)10. 語句ofstreamf(SALARY.DAT,ios:appios:binary);的功能是建立流對象f,試圖打開文件SALARY.DAT并與之連接,并且( ) A.若文件存在,將文件寫指針定位于文件尾;若文件不存在
10、,建立一個新文件 B.若文件存在,將其置為空文件;若文件不存在,打開失敗 C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文件 D.若文件存在,打開失??;若文件不存在,建立一個新文件二、填空題(每空2分,共30分)1. 假定AB為一個類,則語句AB(AB&x);為該類_構造函數(shù)的原型說明。2. C+支持的兩種多態(tài)性分別是_多態(tài)性和_多態(tài)性。3. 定義類的動態(tài)對象數(shù)組時,系統(tǒng)只能夠自動調用該類的_構造函數(shù)對其進行初始化。4. 運算符重載時,其函數(shù)名由 構成。成員函數(shù)重載雙目運算符時,左操作數(shù)是 ,右操作數(shù)是 。5. C+標準庫中的異常層次的根類為 類;MFC類庫中絕大多數(shù)類都源
11、自根類 類。6. 在下面橫線處填上適當字句,完成類中成員函數(shù)的定義。 classA int*a; public: A(intaa=0) a=_; /用aa初始化a所指向的動態(tài)對象 A()_;/釋放動態(tài)存儲空間 ; 7C+支持面向對象程序設計的四個要素是:封裝性、繼承性、 和 。8模板分為 模板和 模板。模擬題二參考答案一、單項選擇題(每題2分,共20分)1A2. C3. D4. C5. A6. A7. A8. C9. C10. A二、填空題(每空2分,共30分)1. 拷貝或復制2. 運行(時) 編譯(時)(二者位置可互換)(或改為靜態(tài)和動態(tài)也可)3. 無參(缺省或默認均可)4. operato
12、r運算符(運算符可寫為,若沒寫扣1分) (當前)對象 函數(shù)的形參(參數(shù))5. exception(若e寫為大寫字母則扣0.5分,單詞稍微寫錯扣0.5分)CObject(字母CO為大寫字母,寫為小寫各扣0.5分)6. new int(aa)delete a(有new、delete各給1分,int給0.5分)7. 抽象性多態(tài)性(二者位置可互換)8. 類函數(shù)(二者位置可互換)模擬題三一、單項選擇題(每題2分,共20分)1. 在下面選項中,對類的拷貝構造函數(shù)的聲明形式是( )A. A:A(&) B. A:A(constA&) C. A:A(A) D. void A:A(A&a)2. 下面關于成員函數(shù)特
13、征的描述中,錯誤的是( )A成員函數(shù)不可以設置參數(shù)的默認值 B成員函數(shù)可以重載C成員函數(shù)可以是內聯(lián)函數(shù) D成員函數(shù)可以是靜態(tài)的3. 下面關于類模板敘述不正確的是( ) A可以有多個構造函數(shù) B. 類模板是模板類的實例C. 一個類模板可以用來實例化多個模板類 D. 類模板可以有多個參數(shù)4. 要使一個類成為抽象類,這個類應具有的條件是( )A至少有一個純虛函數(shù) B. 至少有一個虛函數(shù)C. 只含有一個純虛函數(shù) D.只含有一個虛函數(shù)5. 有關運算符重載正確的描述是( )A. C+語言允許在重載運算符時改變運算符的操作個數(shù)B. C+語言允許在重載運算符時改變運算符的優(yōu)先級C. C+語言允許在重載運算符時
14、改變運算符的結合性D. C+語言允許在重載運算符時改變運算符的原來的功能6. 下列說法正確的是( )。A. 一個類的對象可以是另一個類的成員B. 一個類可以作為另一個類的派生類C. 一個類可以在另一個類定義體進行定義D. 以上說法均正確7. 有如下程序: #include class BASEchar c; public:BASE(char n):c(n) virtualBASE()coutc; ; class DERIVED:public BASE char c; public: DERIVED(char n):BASE(n+1),c(n) DERIVED()coutSetValue(5)與
15、my.SetValue(5)等價9. 下列各類函數(shù)中, 不是類的成員函數(shù)。A. 構造函數(shù) B. 析構函數(shù) C. 友元函數(shù) D. 拷貝構造函數(shù)10.派生類的對象對它的基類成員中 是可以訪問的。A. 公有繼承的公有成員 B. 公有繼承的私有成員 C. 公有繼承的保護成員 D. 私有繼承的公有成員二、填空題(每空2分,共30分)1. 定義內聯(lián)函數(shù)所用的關鍵字 ,定義友元所用的關鍵字為 。2. 當一個派生類具有多個基類時,這種繼承方式稱為_ _。3. 通過一個構造函數(shù)調用虛函數(shù)時,C+系統(tǒng)對該調用采用 聯(lián)編。4. 任何類中允許有 、 、 三種訪問控制類型的成員,數(shù)據(jù)成員和成員函數(shù)的默認類型為 。5.
16、只有在 繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。6. C+標準庫中的異常層次的根類定義在庫的頭文件 中。7. 運算符重載使用的兩種方式是 和 。8. C+支持面向對象程序設計的四個要素是:抽象性、 、 和 。模擬題三參考答案一、單項選擇題(每題2分,共20分)1B2. A3. B4. A5. D6. D7. C8. D9. C10. A二、填空題(每空2分,共30分)9. inline friend10. 多重繼承11. 靜態(tài)12. privateprotectedpublic(三者位置可以互換)private13. 公有14. exception.h15. 成員函數(shù)友元函數(shù)(二者位
17、置可互換)多態(tài)性繼承性封裝性(三者位置可互換)模擬題四一、單項選擇題(每題2分,共20分)1. 下面有關構造函數(shù)和new運算符關系正確的說法是( )Anew運算符不調用構造函數(shù) B. 構造函數(shù)一定調用new運算符C當生成新類的實例時,先調用new運算符,再調用構造函數(shù)進行初始化D. 當new運算符動態(tài)產生類的對象時,new運算符也自動調用構造函數(shù)2. 下面有關類性質的說法錯誤的是( ) A.一個類可以有多個構造函數(shù),但只有一個析構函數(shù)B.析構函數(shù)和構造函數(shù)都不能有返回類型C.不能給析構函數(shù)指定參數(shù)D.一個類中不可以聲明具有類類型的數(shù)據(jù)成員3. 下面關于友元函數(shù)描述正確的是( )A友元函數(shù)是類的
18、成員B友元函數(shù)在類的外部聲明C友元函數(shù)在類中聲明D. 友元函數(shù)能夠派生4. 下面敘述正確的是( ) A. 派生類不可以使用私用派生B. 保護派生時,基類的保護成員在派生類中是公有的C. 對基類成員的訪問允許二義性D. 賦值兼容規(guī)則也適用于多重繼承的組合5. 有關運算符重載正確的描述是( )A. C+語言允許在重載運算符時改變運算符的操作個數(shù)B. C+語言允許在重載運算符時改變運算符的優(yōu)先級C. C+語言允許在重載運算符時改變運算符的結合性D. C+語言允許在重載運算符時改變運算符的原來的功能6. 下面描述中,表達錯誤的是( ) A. 公有繼承時基類中的public成員在派生類中仍是public
19、的 B. 公有繼承是基類中的private成員在派生類中仍是private的 C. 公有繼承時基類中的protected成員在派生類中仍是protected的D. 私有繼承時基類中的public成員在派生類中是private的7. 拷貝構造函數(shù)的參數(shù)是( )A. 某個對象名 B. 某個對象的成員名 C. 某個對象的引用名 D. 某個對象的指針名8. 下列關于構造函數(shù)的描述中,錯誤的是( )A構造函數(shù)可以設置默認參數(shù) B.構造函數(shù)在定義類對象時自動執(zhí)行C構造函數(shù)可以是內聯(lián)函數(shù) D.構造函數(shù)不可以重載9. 數(shù)組作為函數(shù)的形參時,把數(shù)組名作為實參,傳遞給函數(shù)的是( )A該數(shù)組的首地址 B該數(shù)組的元素
20、個數(shù)C該數(shù)組中的各元素值 D該數(shù)組的大小10. 通過一個析構函數(shù)調用虛函數(shù)時,C+系統(tǒng)對該調用采用()。A. 動態(tài)聯(lián)編 B. 靜態(tài)聯(lián)編 C. 不確定是哪種聯(lián)編 D.函數(shù)重載二、填空題(每空2分,共30分)1成員名限定的符號是 ,它可以在引用成員時避免 。2只有在 繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。3. 模板分為 模板和 模板。4. 在用class定義一個類時,數(shù)據(jù)成員和成員函數(shù)的默認訪問權限是 。5. 已知int DBL(int n)return n+n;和long DBL(long n)return n+n;是一個函數(shù)模板的兩個實例,則該函數(shù)模板的定義是 。(要求寫出函數(shù)模板
21、的完整定義)6. 靜態(tài)數(shù)據(jù)成員必須在 進行初始化。7. 含有純虛函數(shù)的類稱為 。8. 若Queue是一個類,aQueue是它的一個對象,而且該類中定義了一個靜態(tài)成員函數(shù)show()則在類外對該成員的函數(shù)進行調用的方式可以為 和 。9. 定義內聯(lián)函數(shù)所用的關鍵字為 ,定義友元所用的關鍵字為 。10. 使用成員函數(shù)重載運算符時,若運算符是二元的,則參數(shù)表中有 個操作數(shù),此時 作為此運算符的左操作數(shù)。模擬題四參考答案一、單項選擇題(每題2分,共20分)1 D 2 D 3 C 4 D 5 D 6 B 7 C 8 D 9 A 10 B 二、填空題(每空2分,共30分)1. : 二義性 2. 公有 3.
22、類 函數(shù) 4. private5. template T DBL(T n)return n+n; 6. 類外 7. 抽象類 8. aQueue.show() Queue:show() 9. inline friend 10 1 當前對象 模擬題五 一、單項選擇題(每題2分,共20分)1. 下面有關重載函數(shù)的說法中正確的是( ) A重載函數(shù)必須具有不同的返回值類型;B重載函數(shù)形參個數(shù)必須不同; C重載函數(shù)必須有不同的形參列表D重載函數(shù)名可以不同; 2. 使用string類建立對象的不正確方式是()。A. string str(“OK”); B. string str=”O(jiān)K”; C. strin
23、g str; D. string str=OK;3. 面關于C+中類的繼承與派生的說法錯誤的是( )A基類的protected成員在公有派生類的成員函數(shù)中可以直接使用B基類的protected成員在私有派生類的成員函數(shù)中可以直接使用C私有派生時,基類的所有成員訪問權限在派生類中保持不變D繼承可以分為單一繼承與多重繼承4. 面向對象程序設計將數(shù)據(jù)與( )放在一起,做為一個相互依存、不可分割的整體來處理。A. 對數(shù)據(jù)的操作B. 信息C. 數(shù)據(jù)隱藏D.數(shù)據(jù)抽象5. 一個類的析構函數(shù) 。A.唯一的 B.允許重載 C.至多可有兩個 D.只能是缺省的6. 下列各類函數(shù)中,( )不是類的成員函數(shù)。A. 構造
24、函數(shù) B. 析構函數(shù) C. 友元函數(shù) D. 拷貝構造函數(shù)7. 在下面選項中,對類的拷貝構造函數(shù)的聲明形式是( )AA:A(&) B. A:A(constA&) C. A:A(A) D. void A:A(A&a)8. 下面關于靜態(tài)成員描述正確的是( )A. 靜態(tài)成員是對象的數(shù)據(jù)成員B. 靜態(tài)成員是對象的成員C. 靜態(tài)成員是對象的成員函數(shù)D. 靜態(tài)成員不是對象的成員9. 下面關于關于成員函數(shù)特征的描述中,錯誤的是( )A成員函數(shù)不可以設置參數(shù)的默認值 B成員函數(shù)可以重載C成員函數(shù)可以是內聯(lián)函數(shù)D成員函數(shù)可以是靜態(tài)的10. 下面敘述正確的是( )A基類的保護成員在派生類中仍然是保護的B基類的公有成
25、員在派生類中仍然是公有的C基類的私有成員在派生類中是私有的D從基類派生時,可以有3種派生方法二、改錯題,指出程序中的錯誤并改正之。1. class base int a;public:int b;int f(int i,int j);class derive:baseint c;public:int base:b; base:f(int i,int j); ; 1 2 2. #include class Apublic:void A(int i=0)m=i;void show()coutm;void A()private:int m; ;void main()A a(5);a.m+=10;a.
26、show();3 4 5 3. #includeusing namespace std;class base int a;static int b;public:base(int m,int n):a(m),b(n)static int geta()return a;static int getb()return b;void show()coutgeta()”,”getb()endl;base:int b=45;void main()6 7 8 模擬題五參考答案一、單項選擇題(每題2分,共20分)1 C 2 D 3 C 4 A 5 A 6 C 7 B 8 B 9 A 10 D 二、改錯題,指
27、出程序中的錯誤并改正之。1 int base:b; 2 base:f(int i,int j);1 base:b; (或訪問聲明僅僅調整名字的訪問,不可為它說明任何類型) 2 base:f; (或訪問聲明不應說明函數(shù)參數(shù))3 void A(int i=0)m=i;4 void A()5 a.m+=10;3 構造函數(shù)去掉void(或構造函數(shù)不能指定返回值類型)4 析構函數(shù)去掉void(或析構函數(shù)不能指定返回值類型)5 對象不能訪問私有成員 6 base(int m,int n):a(m),b(n)7 static int geta()return a;8 base:int b=45;6 不能通過
28、構造函數(shù)初始化靜態(tài)數(shù)據(jù)成員(只要把b(n)去掉即可) 7 靜態(tài)成員函數(shù)中不能引用非靜態(tài)成員數(shù)據(jù)成員(或去掉static) 8 int base:b = 45; 三、改錯題,指出程序中的錯誤并改正之。1. TemplateT fun(T x) T y;y=T-2*x;retrun y;1 2 2. class base public: f(); f(int a); f(char *p);class derive:base public: void f(int s); base:f;3 3. #include class A public: void setA(int); void showA()
29、; private: int a;class B public: void setB(int); void showB(); private: int b;class C : public A, private B public: void setC(int, int, int); void showC(); private: int c;void A:setA(int x) a=x; void B:setB(int x) b=x; void C:setC(int x, int y, int z) a=x; b=y; setA(x); setB(y); c=z;1 Template2 y=T-
30、2*x; 3 base:f;4 a=x;5 b=y;6 obj.setB(6);7 obj.showB();8 return 0;1 改為template 2 T不能用作-的操作數(shù) 3 派生類中具有與基類同名的函數(shù),則基類中的此函數(shù)不能在派生類中進行訪問聲明 4 派生類不能訪問基類A類的私有成員5 派生類不能訪問基類B類的私有成員6 不能訪問B類的公有成員setB 7 不能訪問B類的公有成員showB 8 去掉此語句,或主函數(shù)的返回值void去掉或改為int C+面向對象程序設計模擬試題一 一、填空1在類中必須聲明成員函數(shù)的 原型 ,成員函數(shù)的 實現(xiàn) 部分可以寫在類外。2如果需要在被調函數(shù)運行
31、期間,改變主調函數(shù)中實參變量的值,則函數(shù)的形參應該是 引用 類型或 指針 類型。3 抽象 類只能作為基類使用,而不能聲明它的對象。4進行函數(shù)重載時,被重載的同名函數(shù)如果都沒有用const修飾,則它們的形參 個數(shù) 或 類型 必須不同。5函數(shù)的遞歸調用是指函數(shù)直接或間接地調用 自身 。6拷貝構造函數(shù)的形參必須是 本類對象的引用 。二、閱讀下列程序,寫出其運行時的輸出結果 如果程序運行時會出現(xiàn)錯誤,請簡要描述錯誤原因。1請在以下兩題中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:#include #include class Base private:
32、char msg30; protected: int n; public: Base(char s,int m=0):n(m) strcpy(msg,s); void output(void) coutnendlmsgendl; ;class Derived1:public Baseprivate:int n;public:Derived1(int m=1):Base(Base,m-1) n=m; void output(void) coutnendl; Base:output();class Derived2:public Derived1private:int n;public:Deriv
33、ed2(int m=2):Derived1(m-1) n=m; void output(void) coutnendl; Derived1:output();int main()Base B(Base Class,1);Derived2 D;B.output();D.output();運行結果:1Base Class210Base(2)程序:#include class Samppublic:void Setij(int a,int b)i=a,j=b;Samp()coutDestroying.iendl;int GetMuti()return i*j; protected:int i;int
34、 j;int main()Samp *p;p=new Samp5;if(!p)coutAllocation errorn;return 1;for(int j=0;j5;j+)pj.Setij(j,j);for(int k=0;k5;k+)coutMutik is: pk.GetMuti()endl;deletep;return 0;運行結果:Muti0 is:0Muti1 is:1Muti2 is:4Muti3 is:9Muti4 is:16Destroying.4Destroying.3Destroying.2Destroying.1Destroying.02請在以下兩題中任選一題,該題得
35、分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:#include #include class Vector public: 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=size)couterror in indexendl;
36、exit(1);return bufferndx;void Vector:Display(void)for(int j=0; jsize; j+)coutElem(j)endl;void Vector:Set(void)for(int j=0; jsize; j+)Elem(j)=j+1;Vector:Vector(void)delete buffer;int main()Vector a(10);Vector b(a);a.Set();b.Display();運行結果:12345678910最后出現(xiàn)錯誤信息,原因是:聲明對象b是進行的是淺拷貝,b與a共用同一個buffer,程序結束前調用析構
37、函數(shù)時對同一內存區(qū)進行了兩次釋放。(2)程序:#includeclass CAT public: CAT();/ CAT(const CAT&); CAT(); int GetAge() return *itsAge; void SetAge( int age ) *itsAge=age; protected: int * itsAge;CAT:CAT()itsAge=new int;*itsAge=5;CAT:CAT()delete itsAge;itsAge=NULL;void main()CAT a;coutas age:a.GetAge()endl;a.SetAge(6);CAT b(
38、a);coutas age:a.GetAge()endl;coutbs age:b.GetAge()endl;a.SetAge(7);coutas age:a.GetAge()endl;coutbs age:b.GetAge()endl;運行結果:as age:5as age:6bs age:6as age:7bs age:7最后出現(xiàn)錯誤信息,原因是:聲明對象b是進行的是淺拷貝,b與a共用同一個buffer,程序結束前調用析構函數(shù)時對同一內存區(qū)進行了兩次釋放。C+面向對象程序設計模擬試題二一、單項選擇題(本大題共10小題,每小題2分,共20分)1說明內聯(lián)函數(shù)的關鍵字是( )。A. inline
39、B. virtualC. defineD. static2假定CAb為一個類,則執(zhí)行CAb oX;語句時將自動調用該類的( ) A. 有參構造函數(shù) B. 無參構造函數(shù) C. 拷貝構造函數(shù) D. 賦值重載函數(shù) 3cin是某個類的標準對象的引用,該類是( )。A. ostreamB. istreamC. stdoutD. stdin4下面的哪個保留字不能作為函數(shù)的返回類型?( )A. void B. int C. new D. long5不能參與重載的運算符是( )。A. 類 B. 函數(shù) C. 函數(shù)模板 D. 運算符6由于數(shù)據(jù)隱藏的需要,靜態(tài)數(shù)據(jù)成員通常被說明為( )。A. 私有的 B. 公有的
40、C. 保護的 D. 不可訪問的7編譯時多態(tài)性使用什么獲得?( )A. 重載函數(shù) B. 繼承 C. 虛函數(shù) D. B和C 8拷貝構造函數(shù)的參數(shù)通常是( )。A. 無特殊要求B. 指向對象的指針C. 自已類對象的常引用D. 對象9C+有幾種聯(lián)編?( )A. 1種B. 2種C. 3種D. 4種10基類和派生類可以分別稱為( )。A. “大類”和“小類”B. “父類”和“子類”C. “小類”和“大類”D. “子類”和“父類”二、判斷正誤題(本大題共5小題,每小題2分,共10分)判斷正誤,在題后的括號內,正確的劃上“”錯誤的劃上“”。1不可以定義抽象類的對象。 ( )2內聯(lián)函數(shù)的定義必須出現(xiàn)在第一次調用
41、內聯(lián)函數(shù)之前。 ( )3模板函數(shù)與函數(shù)模板的意義完全相同。 ( )4只有常成員函數(shù)才可以操作常對象。 ( )5引用可以不初始化。 ( )三、填空題(本大題共5小題,每小題2分,共10分)1設函數(shù)max是由函數(shù)模板實現(xiàn)的,并且max(3.5, 5)和max(3, 5)都是正確的函數(shù)調用,則此函數(shù)模板具有( )個類型參數(shù)。2在C+中,函數(shù)重載與虛函數(shù)幫助實現(xiàn)了類的( )性。3由static修飾的數(shù)據(jù)成員為該類的所有對象( )。4重載函數(shù)在參數(shù)類型或參數(shù)個數(shù)上不同,但( )相同。5使用new建立的動態(tài)對象在不用時必須用( )釋放所占用的空間。四、程序分析題(本大題共4小題,每小題5分,共20分)給出
42、下面各程序的輸出結果。1閱讀下面程序,寫出輸出結果。#include using namespace std;class CPositionpublic:CPosition(int iPositionX = 0, int iPositionY = 0):m_iPositionX(iPositionX)m_iPositionY = iPositionY;int GetPositionX() constreturn m_iPositionX;int GetPositionY() constreturn m_iPositionY;void SetPositionX(int iPositionX)m_iPositionX = iPositionX;void SetPositionY(in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中國鐵建投資集團限公司公開招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國遠洋海運集團內部招聘中遠海運(香港)限公司所屬單位招聘2人高頻重點提升(共500題)附帶答案詳解
- 2025中國聯(lián)通四川省分公司春季校園招聘317人高頻重點提升(共500題)附帶答案詳解
- 2025中國移動河北公司校園實習生招聘440人高頻重點提升(共500題)附帶答案詳解
- 2025中國電力貴州工程限公司招聘667人高頻重點提升(共500題)附帶答案詳解
- 2025中國廣核集團聯(lián)合培養(yǎng)招聘(黑龍江)高頻重點提升(共500題)附帶答案詳解
- 2025中國出口信用保險公司校園招聘100人高頻重點提升(共500題)附帶答案詳解
- 2025中國中鐵華南區(qū)域總部(中鐵南方)畢業(yè)生招聘高頻重點提升(共500題)附帶答案詳解
- 2025下半年福建寧德霞浦縣事業(yè)單位招考緊缺急需人才20高頻重點提升(共500題)附帶答案詳解
- 2025下半年廣東省深圳市龍華區(qū)事業(yè)單位考試筆試高頻重點提升(共500題)附帶答案詳解
- 揚塵防治(治理)監(jiān)理實施細則(范本)
- 五金耗材材料項目投標方案(技術方案)
- 讀書分享《終身成長》課件
- GB/T 44843-2024在用自動扶梯和自動人行道安全評估規(guī)范
- 廣東省廣州市2023-2024學年六年級上學期語文期末試卷(含答案)
- 宮頸癌護理查房-5
- 中職無人機應用技術跨行業(yè)人才培養(yǎng)方案
- 律師事務所整體轉讓協(xié)議書范文
- 照明設備課件教學課件
- 高級管理招聘面試題與參考回答2024年
- 2023-2024學年全國初中七年級下地理人教版期中考試試卷(含答案解析)
評論
0/150
提交評論