C練習(xí)題及答案_第1頁(yè)
C練習(xí)題及答案_第2頁(yè)
C練習(xí)題及答案_第3頁(yè)
C練習(xí)題及答案_第4頁(yè)
C練習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一、單項(xiàng)選擇題1以下描述中,表達(dá)錯(cuò)誤的選項(xiàng)是 。 A、公有繼承的基類中的Public成員在派生類中仍是Public的 B、私有繼承的基類中Private成員在派生類中仍是Private的 C、公有繼承的基類中的Protected成員在派生類中仍是Protected的 D、私有繼承的基類中Public成員在派生類中是Private的2. 下面 項(xiàng)是對(duì)構(gòu)造函數(shù)和析構(gòu)函數(shù)的正確定義。A、void X:X(), void X:X() B、X:X(參數(shù)), X:X()C、X:X(參數(shù)), X:X(參數(shù)) D、void X:X(參數(shù)), void X:X(參數(shù))3. 如果類A被說(shuō)明成類B的友元,那么( )

2、。A、類A的成員即類B的成員 B、類B的成員即類A的成員C、類A的成員函數(shù)不得訪問(wèn)類B的成員類D、B不一定是類A的友元4. 拷貝復(fù)制構(gòu)造函數(shù)的作用是( )。A、進(jìn)展數(shù)據(jù)類型的轉(zhuǎn)換 B、用對(duì)象調(diào)用成員函數(shù)C、用對(duì)象初始化對(duì)象 D、用一般類型的數(shù)據(jù)初始化對(duì)象5. 下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的選項(xiàng)是( ) 。A、靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)展初始化 B、靜態(tài)數(shù)據(jù)成員不可以被類的對(duì)象調(diào)用C、靜態(tài)數(shù)據(jù)成員不能受private控制符的作用 D、靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用6 C+中的類有兩種用法:一種是類的實(shí)例化,即生成類對(duì)象,并參及系統(tǒng)的運(yùn)行;另一種是通過(guò) 派生了新的類。 A、復(fù)用 B、繼承 C、

3、封裝 D、引用7. 以下對(duì)繼承的描述中,錯(cuò)誤的選項(xiàng)是 。A、析構(gòu)函數(shù)不能被繼承B、派生類也是基類的組合C、派生類的成員除了它自己的成員外,還包含了它的基類的成員D、派生類中繼承的基類成員的訪問(wèn)權(quán)限到派生類保持不變8. 以下虛基類的聲明中,正確的選項(xiàng)是 。A、class virtual B:public A B、virtual class B:public AC、class B:public A virtual D、class B: virtual public A9. 關(guān)于多繼承二義性的描述,     是錯(cuò)誤的。A、派生類的多個(gè)基類中存在同名成員時(shí),派生

4、類對(duì)這個(gè)成員訪問(wèn)可能出現(xiàn)二義性B、一個(gè)派生類是從具有共同的間接基類的兩個(gè)基類派生來(lái)的,派生類對(duì)該公共基類的訪問(wèn)可能出現(xiàn)二義性C、解決二義性最常用的方法是作用域運(yùn)算符對(duì)成員進(jìn)展限定D、 派生類和它的基類中出現(xiàn)同名函數(shù)時(shí),將可能出現(xiàn)二義性10. 以下關(guān)于虛基類的描述,錯(cuò)誤的選項(xiàng)是 A、設(shè)置虛基類的目的是為了消除二義性B、虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用C、假設(shè)同一層中包含多個(gè)虛基類,這些虛基類的構(gòu)造函數(shù)按它們說(shuō)明的次序調(diào)用D、假設(shè)虛基類由非虛基類派生而來(lái),那么仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)11. 在C+語(yǔ)言中,對(duì)函數(shù)參數(shù)默認(rèn)值描述正確的選項(xiàng)是 。A、函數(shù)參數(shù)的默認(rèn)值只能設(shè)定一個(gè)B

5、、一個(gè)函數(shù)的參數(shù)假設(shè)有多個(gè),那么參數(shù)默認(rèn)值的設(shè)定可以不連續(xù)C、函數(shù)必須設(shè)定默認(rèn)值D、在設(shè)定參數(shù)的默認(rèn)值后,該參數(shù)后面定義的所有參數(shù)都必須設(shè)定默認(rèn)值12. 以下關(guān)于派生類構(gòu)造函數(shù)的描述中,錯(cuò)誤的選項(xiàng)是 ( )A、派生類構(gòu)造函數(shù)應(yīng)包含直接基類和所有間接基類的構(gòu)造函數(shù)B、派生類構(gòu)造函數(shù)僅包含直接基類構(gòu)造函數(shù)和其他如子對(duì)象類構(gòu)造函數(shù)等C、派生類構(gòu)造函數(shù)通常帶有成員初始化表D、派生類默認(rèn)構(gòu)造函數(shù)中隱含包括直接基類的默認(rèn)構(gòu)造函數(shù)13. 對(duì)于運(yùn)算符重載,說(shuō)法正確的選項(xiàng)是( ) A、運(yùn)算符如果被重載為非成員函數(shù),那么對(duì)象就不能利用這個(gè)運(yùn)算符重載函數(shù)進(jìn)展操作B、運(yùn)算符重載函數(shù)可能既不是成員函數(shù),也不是友元函數(shù)C

6、、用戶每定義一個(gè)類,系統(tǒng)會(huì)自動(dòng)提供一個(gè)賦值運(yùn)算符重載函數(shù),所以完全不必考慮重載賦值運(yùn)算符函數(shù)D、一個(gè)類的虛函數(shù)不能調(diào)用運(yùn)算符重載函數(shù)14. 以下關(guān)于this指針的說(shuō)法正確的選項(xiàng)是 A、this指針存在于每個(gè)函數(shù)之中B、在類的非靜態(tài)函數(shù)中this指針指向調(diào)用該函數(shù)的對(duì)象C、this指針是指向虛函數(shù)表的指針D、this指針是指向類的函數(shù)成員的指針15. 要讓一個(gè)類中的所有對(duì)象具有共同的數(shù)據(jù),請(qǐng)使用 。A、常數(shù)成員變量 B、私有數(shù)據(jù)成員 C、靜態(tài)數(shù)據(jù)成員 D、以上都是得分二、填空題1. 在保護(hù)繼承關(guān)系下,基類的公有成員和保護(hù)成員將成為派生類中的 成員,它們只能由派生類的 來(lái)訪問(wèn);基類的私有成員將成為

7、派生類中的 成員。2. 運(yùn)算符對(duì)指定類型對(duì)象動(dòng)態(tài)分配內(nèi)存并返回該類型的 。3. 如果需要在被調(diào)函數(shù)運(yùn)行期間,改變主調(diào)函數(shù)中實(shí)參變量的值,那么函數(shù)的形參應(yīng)該是 或 。4. 在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,通過(guò) 實(shí)現(xiàn)數(shù)據(jù)隱藏;通過(guò)繼承實(shí)現(xiàn)代碼的復(fù)用。 函數(shù)名重載是指同一作用域內(nèi)的多個(gè)函數(shù)使用一樣的函數(shù)名,這些同名函數(shù)通過(guò)它們的 進(jìn)展區(qū)分。5. 單目運(yùn)算符作為類成員函數(shù)重載時(shí)沒(méi)有參數(shù);雙目運(yùn)算符作為 重載時(shí)只需聲明其右操作數(shù),作為友元函數(shù)重載時(shí)需聲明全部操作數(shù)。6. 在C+語(yǔ)言中,訪問(wèn)一個(gè)對(duì)象的成員所用的運(yùn)算符是_,訪問(wèn)一個(gè)指針?biāo)赶虻膶?duì)象的成員所用的運(yùn)算符是_。7. 在繼承機(jī)制下,當(dāng)對(duì)象消亡時(shí),編譯系統(tǒng)先

8、執(zhí)行     的析構(gòu)函數(shù),然后才執(zhí)行     的析構(gòu)函數(shù),最后執(zhí)行      的析構(gòu)函數(shù)。三、改錯(cuò)題找出以下程序中的錯(cuò)誤,說(shuō)明錯(cuò)誤原因并改正1. #include<iostream.h>class oneint a1,a2; public:one(int x1=0, x2=0);void main()one data(2,3); cout<<data.a1<<endl; cout<<data.a2<<endl;2. #include &

9、lt;iostream.h>class Amplifier float invol,outvol;public: Amplifier(float vin,float vout) invol=vin; outvol=vout; float gain(); Amplifier:float gain() return outvol/invol; void main()Amplifier amp(5.0,10.0); cout<<"nnThe gain is =>"<<gain()<<endl;3. 代碼段:class window

10、protected: int basedata;class border: public window ;class menu: public window ;class border_and_menu: public border, public menupublic: int show() return basedata; 四、程序閱讀題仔細(xì)閱讀程序,寫(xiě)出程序運(yùn)行結(jié)果1. #include <iostream.h>class pointint x,y;public:point(int a,int b)x=a;y=b; cout<<"calling the

11、constructor function."<<endl; point(point& p); friend point move(point q); point()cout<<"calling the destructor function.n" int getx() return x; int gety() return y; point:point(point &p)x=p.x; y=p.y; cout<<"calling the copy_initialization constructor fu

12、nction.n"point move(point q)cout<<"OK!n" int i,j; i=q.x+10; j=q.y+20; point r(i,j); return r;void main()point m(15,40),p(0,0); point n(m); p=move(n); cout<<"p="<<p.getx()<<","<<p.gety()<<endl;2. #include <iostream>using nam

13、espace std;class Afriend double count(A&);public:A(double t, double r):total(t),rate(r)private:double total;double rate;double count(A& a)a.total+=a.rate*a.total;return a.total;int main(void)A x(80,0.5),y(100,0.2);cout<<count(x)<<','<<count(y)<<'n'cout

14、<<count(x)<<'n'return 0;3. #include<iostream.h>class A public: A(char *s) cout<<s<<endl; A() class B:virtual public A public: B(char *s1, char *s2):A(s1) cout<<s2<<endl; class C: virtual public A public: C(char*s1,char *s2):A(s1) cout<<s2<&l

15、t;endl;class D:public B,public Cpublic: D(char *s1, char *s2,char *s3, char *s4):B(s1,s2),C(s1,s3),A(s1) cout<<s4<<endl;void main() D *p=new D("class A","class B","class C","class D"); delete p;五、程序設(shè)計(jì)題1. 定義一個(gè)點(diǎn)類Point、圓類Circle和圓柱體類Cylinder的層次構(gòu)造。圓包括圓心

16、和半徑兩個(gè)數(shù)據(jù)成員,圓心具有點(diǎn)類的所有特征。圓柱體類由半徑和高構(gòu)成。要求各類提供支持初始化的構(gòu)造函數(shù)和顯示自己成員的成員函數(shù)。編寫(xiě)主函數(shù),測(cè)試這個(gè)層次構(gòu)造,輸出圓柱體類的相關(guān)信息。一、 單項(xiàng)選擇題BBDCD BDDDB DABBC二、 填空題1. 保護(hù) 成員函數(shù) 私有2. new 指針3 引用類型 指針4. 封裝 不同的參數(shù)表5. 成員函數(shù)6. 成員選擇運(yùn)算符(或.);成員訪問(wèn)運(yùn)算符(或->)7. 派生類派生類中子對(duì)象類基類三、改錯(cuò)題1. 分析:出錯(cuò)原因:構(gòu)造函數(shù)參數(shù)表語(yǔ)法錯(cuò);構(gòu)造函數(shù)沒(méi)有函數(shù)體;類的對(duì)象不能直接訪問(wèn)類的私有成員變量。2. 分析:成員函數(shù)在類體外定義格式是:函數(shù)返回類型

17、類名:成員函數(shù)名參數(shù)表;成員函數(shù)調(diào)用格式是:對(duì)象名.成員函數(shù)名參數(shù)表。改正后的程序如下:#include <iostream.h>class Amplifier float invol,outvol;public: Amplifier(float vin,float vout) invol=vin;outvol=vout; float gain(); float Amplifier:gain() return outvol/invol; void main() Amplifier amp(5.0,10.0); cout<<"nnThe gain is =>

18、;"<<amp.gain()<<endl;3. return basedata;/ 在border_and_menu中引用basedata時(shí)產(chǎn)生二義性,應(yīng)使用虛基類應(yīng)改為:class border:virtual public window ;class menu: virtual public window ;四、程序閱讀題1. 分析:根據(jù)構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)和友元函數(shù)的特點(diǎn),執(zhí)行該程序后,輸出結(jié)果是:calling the constructor function.calling the constructor function.calling the

19、copy_initialization constructor function.calling the copy_initialization constructor function.OK!calling the constructor function.calling the copy_initialization constructor function.calling the destructor function.calling the destructor function.calling the destructor function.P=25,60calling the de

20、structor function.calling the destructor function.calling the destructor function.2.結(jié)果: 120,120 1803. 說(shuō)明:創(chuàng)立D對(duì)象時(shí),只有在D的構(gòu)造函數(shù)的初始化列表中列出的虛基類構(gòu)造函數(shù)被調(diào)用,D的兩個(gè)基類B、C的構(gòu)造函數(shù)中的虛基類構(gòu)造函數(shù)被忽略,不執(zhí)行,從而保證在D對(duì)象中只有一個(gè)虛基類子對(duì)象。運(yùn)行結(jié)果:class Aclass Bclass Cclass D五、程序設(shè)計(jì)題#include<iostream>using namespace std;class Point /定義基類 public: Point(int myx,int myy)x=myx;y=myy; void displayxy()cout<<"The postion of center:"cout<<"("<<x<

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論