C考試試題答案_第1頁
C考試試題答案_第2頁
C考試試題答案_第3頁
C考試試題答案_第4頁
C考試試題答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C+面向?qū)ο蟪绦蛟O(shè)計考試試題答案一、單項選擇題(在每小題的四個備選答案中,選出一個正確的答案,并將其號碼填在題干后的括號內(nèi)。每小題1分,共20分)1. 面向?qū)ο蟪绦蛟O(shè)計將數(shù)據(jù)與a 在一起,作為一個相互依存、不可分割的整體來處理。A. 對數(shù)據(jù)的操作B.信息C.數(shù)據(jù)隱藏D.數(shù)據(jù)抽象2.a_ A.重載C.類不是面向?qū)ο笙到y(tǒng)所包含的要素。對象 繼承B.D.3.a B.D.按照標(biāo)識符的要求,A. 連接符C.大小寫字母符號不能組成標(biāo)識符。 下劃線 數(shù)字字母4.已知ch是字符型變量,下面正確的賦值語句是 b。A.ch=123;B.ch= xff C. ch=08D.ch=” ”;5.要求通過函數(shù)來實現(xiàn)一種不

2、太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用aA.內(nèi)聯(lián)函數(shù)C.重載函數(shù)B.D.遞歸調(diào)用 嵌套調(diào)用6.c的功能是對對象進行初始化。 A.析構(gòu)函數(shù) C.構(gòu)造函數(shù)B.D.數(shù)據(jù)成員 靜態(tài)成員函數(shù)7.在下列關(guān)鍵字中,A.publicC.protected用以說明類中公有成員的是a。B. privateD.frie nd注:1 .試題字跡務(wù)必清晰,書寫工整。2題間不留空,一般應(yīng)題卷分開3 .務(wù)必用A4紙打印本題6頁,本頁為第1頁 試題編號:學(xué)號:姓名:課程名稱:面向?qū)ο蟮募夹g(shù)與方法任課教師:唐寧九8. D無返回類型,但又有return語句。A.虛函數(shù)B.內(nèi)聯(lián)函數(shù)C.友元函數(shù)D.類型轉(zhuǎn)換函數(shù)9. 類模板的使用實

3、際上是將類模板實例化成一個具體的 A _A.類B.對象C函數(shù)D.模板類10. 利用友元函數(shù)重載 運算符,第2個參數(shù)必須為c 。A.指針B.對象C.引用D.無值11. 用成員函數(shù)重載二元運算符則顯式調(diào)用方式為_CA.obj1.operator(obj2) B.operator(obj1,obj2)C.obj1.operator( )D.obj1obj2某個對象的成員名 某個對象的指針名12. 通??截悩?gòu)造函數(shù)的參數(shù)是 c A.某個對象名B.C.某個對象的引用名D.13. 已知一個類A,B指向類A成員函數(shù)的指針。假設(shè)類有三個公有成員:void f1(int),void f2(int)和 int a

4、 。A.A *pB.i nt A:*pc=&A:aC.void A:*paD.A *pp14. 用struct定義類,若它的成員缺省段約束符的說明,其成員是_b_的 成員。A.私有段B.公有段C.特殊段D.保護段15.下列定義中,A是定義指向數(shù)組的指針p。本題14頁,本頁為第4頁A.i nt *p5B.i nt (*p )5C.(i nt *)p5D.i nt *p16. C+中的類有兩種用法:一種是類的實例化,即生成類的對象,并參與系 統(tǒng)的運行;另一種是通過c一 派生出新的類。A.復(fù)用B.單繼承A是可以訪問的。公有繼承的私有成員 私有繼承的公有成員C.繼承D.多繼承17. 派生類的對象對它的

5、基類成員中_A.公有繼承的公有成員B.C.公有繼承的保護成員D.18. 說明靜態(tài)成員函數(shù)的關(guān)鍵字為a.A.staticB. virtualC. frie ndD.void課程名稱:面向?qū)ο蟮募夹g(shù)與方法任課教師:唐寧九學(xué)號:姓名:19.本題14頁,本頁為第7頁B.+A.?:C.-D.E.()3. 對一元運算符進行重載后,正確的顯式調(diào)用方式有BD。A.aB.operator(a) C.abD.a.operator( ) E.a4. 關(guān)于構(gòu)造函數(shù),正確的描述有_BD。A.可以是虛函數(shù)B.可以有參數(shù)C.可以被繼承D.可以重載E.可以顯式調(diào)用5. C+的模板有DE模板。A.運算符 B. 數(shù)據(jù) C. 類型

6、D.類E. 函數(shù)、名詞解釋(每小題2分,共8分)1. 封裝性:封裝就是將抽象得到的數(shù)據(jù)和行為(或功能)相結(jié)合,形成一個有機的整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)的 源代碼進行有機的結(jié)合,形成 類”其中數(shù)據(jù)和函數(shù)都是類的成員。封裝的目的是增強安全性和簡化編程,使用者不必 了解具體的實現(xiàn)細節(jié),而只是要通過 外部接口,一特定的訪問權(quán)限來使用類的成員。2.類:實際上是對某種類型的對象定義變量和方法的原型。它表示對現(xiàn)實生活中一類具有共同特征的 事物的抽象,是面向?qū)ο缶幊痰幕A(chǔ)。3構(gòu)造函數(shù):是一種特殊的方法主要用來在創(chuàng)建對象時初始化對象 即為對象成員變量賦初始值,總與new運算符 起使用在創(chuàng)建對象的語句中特別的一

7、個類可以有多個構(gòu)造函數(shù)可根據(jù)其參數(shù)個數(shù)的不同或參數(shù)類型的不同來區(qū)分它 們即構(gòu)造函數(shù)的重載4.內(nèi)聯(lián)函數(shù):,內(nèi)聯(lián)函數(shù)(有時稱作在線函數(shù)或編譯時期展開函數(shù))是一種編程語言結(jié)構(gòu),用來建議編譯器對一些特殊 函數(shù)進行內(nèi)聯(lián)擴展(有時稱作在線擴展);也就是說建議編譯器將指定的函數(shù)體插入并取代每一處調(diào)用該函數(shù)的地方(, 從而節(jié)省了每次調(diào)用函數(shù)帶來的額外時間開支。四、判斷分析題(判斷正誤,將正確的劃上 ”錯誤的劃上“X”并簡述理由。每小題3分,共12分)1. 空類就是沒有名字的類。錯??疹愂菦]有任何成員的類2. 引用類型和指針類型作為函數(shù)的形式參數(shù)時,對調(diào)用函數(shù)的實際參數(shù)的要求是一樣的,均是地址。錯3. 在派生類

8、中,若基類的一個成員在派生類中也把相同名字定義為一個成員,則不可調(diào)整它的訪問。錯。因為基類構(gòu)造函數(shù)的調(diào)用順序是按照派生類定義時的順序,而內(nèi)嵌對象構(gòu)造函數(shù)調(diào)用順序 應(yīng)該按照成員在類中聲明的順序.兩種都可以控制4. 對象數(shù)組在創(chuàng)建時要求構(gòu)造函數(shù)不能有任何參數(shù)。錯。靜態(tài)數(shù)據(jù)成員是一個類的多個對象共享的五、讀程序、得結(jié)果(每小題5分,共20分)1. #i nclude class A int a;public:void seta(i nt x)a=x;void showa()coutae ndl;class B int b;public:姓名:課程名稱:面向?qū)ο蟮募夹g(shù)與方法任課教師:唐寧九學(xué)號:voi

9、d setb(i nt x)b=x;void showb()coutbe ndl;class C:public A, private B int c:public:void setc(i nt x,i nt y,i nt z)c=z;seta(x);setb(y);void showc()coutce ndl;main () C c;c.seta(1);c.showa();c.setc(1,2,3);c.showc();以上程序的執(zhí)行結(jié)果是3_2. #in clude class csample private:int i ;static int k;public:csample();void

10、 display();csample:csample()i=O;k+;void csample:display()cout ” i= ” i ” ,k= ” kendl; int csample:k=0;main () csample a,b;a. display();b. display();以上程序的執(zhí)行結(jié)果是i=0,k=2I=0,k=2_。3. #in clude class sample int x;public:void setx(i nt i)x=i; int putx()retur n x; ;main ()本題14頁,本頁為第8頁任課教師:唐寧九學(xué)號:姓名:課程名稱:面向?qū)ο蟮?/p>

11、技術(shù)與方法 sample *p;sample A3;A0.setx(5);A1.setx(6);A2.setx(7);for(int j=0;j3;j+)p=&Aj;coutputx() ” ” ;coute ndl;以上程序的執(zhí)行結(jié)果是5674. #in clude static int dys =31,28,31,30,31,30,31,31,30,31,30,31; class dateint mo,da,yr;public:date(i nt m,i nt d,i nt y)mo=m,da=d;yr=y;date()void disp()coutmo ” / ” da” / ” yrd

12、ysdt.mo-1) day-=daysdt.mo-1;if(+dt.mo=13)dt.mo=1;dt.yr+;dt.da=day;return dt;main () date d1(2,10,2001),d2;d2=d1+20;d2.disp();以上程序的執(zhí)行結(jié)果是_3/2/2001_。六、編程題(每小題15分,共30分)1.用模板設(shè)計一個堆棧類,包含判棧、讀棧、入棧和出棧功能,要求用成員 函數(shù)重載“()”實現(xiàn)判棧功能,用友元函數(shù)重載“-”實現(xiàn)出棧功能。重載為出棧? “”?判棧有判空和判滿。#in cludeusing n amespace std;template 本題14頁,本頁為第9

13、頁課程名稱:面向?qū)ο蟮募夹g(shù)與方法任課教師:唐寧九學(xué)號:姓名:class Stackprivate:int size;int top;T *space;public:Stack(i nt n);Stack() delete space;void push( T t);friend ostrea m& operator(ostream& out,Stack &st) while(!(st.operator()()out st.spacest.top+e ndl;return out;bool operator ()() constretur n top = size;bool lsfull() c

14、onstreturn top = 0;template Stack:Stack(int size)this-size = size;top = size;space = new T size;template void Stack:push(T t)if(!lsfull()本題14頁,本頁為第10頁學(xué)號:姓名:課程名稱:面向?qū)ο蟮募夹g(shù)與方法任課教師:唐寧九space-top = t;int mai n()Stacks(20);可以指定棧的大小s.push(1);s.push(2);s.push(3);s.push(4);s.push(5);s.push(6);couts;這個沒問題,如果是重載

15、-改為:#in cludeusing n amespace std;template class Stackprivate:int size;int top;T *space;public:Stack(i nt n);Stack()delete space;void push( T t);frie nd Stack & operator -(Stack &st)while(!(st.operator()()cout st.spacest.top+e ndl;bool operator ()() const retur n top = size;本題14頁,本頁為第11頁課程名稱:面向?qū)ο蟮募夹g(shù)

16、與方法任課教師:唐寧九學(xué)號:姓名:bool lsfull() constreturn top = 0;;template Stack:Stack(int size)this-size = size;top = size;space = new T size;template void Stack:push(T t)if(!Isfull()space-top = t;int mai n()Stacks(20);可以指定棧的大小s.push(1);s.push(2);s.push(3);s.push(4);s.push(5);s.push(6);-s;但是這個在VC下不行,在codeblocks下

17、使用mingw32-g+.exe可以正常編譯執(zhí)行,運行截圖:2.利用基類、派生類和虛函數(shù)的概念編寫一個程序計算三角形、矩形和圓形 的面積。#in clude const double PI = 3.1415926;using n amespace std;struct Poi ntPoi nt()x = y = 0;=Poi nt(double X, double Y) :x(X), y(Y);double x;double y;; class shapepublic:virtual double GetArea()=0; /虛函數(shù),純虛函數(shù),圖形不具體的話,無法求面積virtual void

18、 Print()=0; /虛函數(shù),純虛函數(shù),圖形不具體的話,無法輸出面積;/三角形類,繼承自圖形類class trig on : public shapepublic:trigo n(Poi nt &A, Poi nt &B, Poi nt &C):a(A), b(B), c(C);trigo n();double GetArea()/自己找公式吧,根據(jù)三點計算面積的area = 0;return area;void Print()cout 三角形【(vv a.x , a.y ):( b.x , b.y ):( c.x , c.y )】的面積是: GetArea() en dl;private:trigon ();Point a, b, c; /三角形三個點double area; / 面積;/矩形類,繼承自圖形類class rect : public shapepublic:rect(double & Top, double &Bottom, double & Left, double & Right):top(Top), bottom(Bottom), left(Left), right(Right)/填充四個點的坐標(biāo)pa.x = Left;pa.y = Top;pb.x = Left;pb.y = Bottom;pc.x

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論