




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、面向?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_不是面向?qū)ο笙到y(tǒng)所包含的要素。A.重載 B.對象C.類 D.繼承3. 按照標(biāo)識符的要求,_a_符號不能組成標(biāo)識符。A.連接符 B.下劃線C.大小寫字母 D.數(shù)字字母4. 已知ch是字符型變量,下面正確的賦值語句是_b_。A.ch=123; B.ch=xff;C.ch=08; D.ch=”;5. 要求通過函數(shù)來
2、實現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用_a_。A.內(nèi)聯(lián)函數(shù) B.遞歸調(diào)用C.重載函數(shù) D.嵌套調(diào)用6. _c_的功能是對對象進行初始化。A.析構(gòu)函數(shù) B.數(shù)據(jù)成員C.構(gòu)造函數(shù) D.靜態(tài)成員函數(shù)7. 在下列關(guān)鍵字中,用以說明類中公有成員的是_a_。A.public B.privateC.protected D.friend8. _D_無返回類型,但又有return語句。A.虛函數(shù) B.內(nèi)聯(lián)函數(shù)C.友元函數(shù) D.類型轉(zhuǎn)換函數(shù)9. 類模板的使用實際上是將類模板實例化成一個具體的_A_。A.類 B.對象C.函數(shù) D.模板類10. 利用友元函數(shù)重載“>>”運算符,第2個參數(shù)必須為
3、_c_。 A.指針 B.對象C.引用 D.無值11. 用成員函數(shù)重載二元運算符,則顯式調(diào)用方式為_C_。A.obj1.operator(obj2) B.operator(obj1,obj2)C.obj1.operator( ) D.obj1obj212. 通??截悩?gòu)造函數(shù)的參數(shù)是_c_。A.某個對象名 B.某個對象的成員名C.某個對象的引用名 D.某個對象的指針名13. 已知一個類A,_B_是指向類A成員函數(shù)的指針。假設(shè)類有三個公有成員:void f1(int),void f2(int)和int a。A.A *p B.int A:*pc=&A:aC.void A:*pa D.A *pp
4、14. 用struct定義類,若它的成員缺省段約束符的說明,其成員是_b_的成員。A.私有段 B.公有段C.特殊段 D.保護段15. 下列定義中,_A_是定義指向數(shù)組的指針p。A.int *p5 B.int (*p)5C.(int *)p5 D.int *p16. C+中的類有兩種用法:一種是類的實例化,即生成類的對象,并參與系 統(tǒng)的運行;另一種是通過_c_,派生出新的類。A.復(fù)用 B.單繼承C.繼承 D.多繼承17. 派生類的對象對它的基類成員中_A_是可以訪問的。A.公有繼承的公有成員 B.公有繼承的私有成員C.公有繼承的保護成員 D.私有繼承的公有成員18. 說明靜態(tài)成員函數(shù)的關(guān)鍵字為_
5、a_。A.static B.virtualC.friend D.void19. 下列運算符中,_c_運算符在C+中不能重載。A.?: B.+C.- D.<=20. cin是_b_類的標(biāo)準(zhǔn)對象的引用。A.ostream B.istreamC.stdin D.stdout二、多項選擇題(在每小題的五個備選答案中,選出若干個正確的答案,并將其號碼分別填在題干后的括號內(nèi);多選、少選、錯選均無分。每小題2分,共10分)1. 若給出函數(shù)聲明: void f(int a=1,int b=2,int c=3,int d=4); 下面的函數(shù)調(diào)用合法的有_ABD_。A.f( ) B.f(5) C.f(5,6
6、)D.f(5,6,7) E.f(5,6,7,8)2. 不能用友元函數(shù)重載的運算符有_ABDE_。 A.= B. C.+D.-> E.( ) 3. 對一元運算符進行重載后,正確的顯式調(diào)用方式有_BD_。A.a B.operator(a) C.abD.a.operator( ) E.a4. 關(guān)于構(gòu)造函數(shù),正確的描述有_。A.可以是虛函數(shù) B.可以有參數(shù) C.可以被繼承D.可以重載 E.可以顯式調(diào)用5. C+的模板有_DE_模板。A.運算符 B.數(shù)據(jù) C.類型D.類 E.函數(shù)三、名詞解釋(每小題2分,共8分)1. 封裝性:封裝就是將抽象得到的數(shù)據(jù)和行為(或功能)相結(jié)合,形成一個有機的整體,也就
7、是將數(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)建對象的語句中 特別的一個類可以有多個構(gòu)造函數(shù) 可根據(jù)其參數(shù)個數(shù)的不同或參數(shù)類型的不同來區(qū)分它們 即構(gòu)造函數(shù)的重載4. 內(nèi)聯(lián)函數(shù):,內(nèi)聯(lián)函數(shù)(有時稱作在
8、線函數(shù)或編譯時期展開函數(shù))是一種編程語言結(jié)構(gòu),用來建議編譯器對一些特殊函數(shù)進行內(nèi)聯(lián)擴展(有時稱作在線擴展);也就是說建議編譯器將指定的函數(shù)體插入并取代每一處調(diào)用該函數(shù)的地方(,從而節(jié)省了每次調(diào)用函數(shù)帶來的額外時間開支。四、判斷分析題(判斷正誤,將正確的劃上“”,錯誤的劃上“”,并簡述理由。每小題3分,共12分)1. 空類就是沒有名字的類。錯??疹愂菦]有任何成員的類2 引用類型和指針類型作為函數(shù)的形式參數(shù)時,對調(diào)用函數(shù)的實際參數(shù)的要求是一樣的,均是地址。錯3. 在派生類中,若基類的一個成員在派生類中也把相同名字定義為一個成員, 則不可調(diào)整它的訪問。錯。因為基類構(gòu)造函數(shù)的調(diào)用順序是按照派生類定義時
9、的順序,而內(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. #include <iostream.h> class A int a; public: void seta(int x)a=x; void showa()cout<<a<<endl; ; class B int b; public: void setb(int x)b=x; void showb()cout<<b<<en
10、dl; class C:public A, private B int c: public: void setc(int x,int y,int z)c=z;seta(x);setb(y); void showc()cout<<c<<endl;main() C c; c.seta(1); c.showa(); c.setc(1,2,3); c.showc(); 以上程序的執(zhí)行結(jié)果是_3_。2. #include <iostream.h>class csample private: int i ; static int k;public: csample();
11、void display();csample:csample()i=0;k+;void csample:display()cout<<”i=”<<i<<”,k=”<<k<<endl;int csample:k=0;main() csample a,b;a.display();b.display();以上程序的執(zhí)行結(jié)果是_i=0,k=2I=0,k=2_。_。3. #include <iostream.h>class sample int x;public:void setx(int i)x=i;int putx()retur
12、n x;main() sample *p;sample A3;A0.setx(5); A1.setx(6); A2.setx(7); for(int j=0;j<3;j+)p=&Aj;cout<<p->putx()<<” ”;cout<<endl;以上程序的執(zhí)行結(jié)果是_567_。4. #include <iostream.h>static int dys =31,28,31,30,31,30,31,31,30,31,30,31;class dateint mo,da,yr;public:date(int m,int d,int
13、 y)mo=m,da=d;yr=y; date()void disp()cout<<mo<<”/”<<da<<”/”<<yr<<endl;date operator+(int day) date dt=*this;day+=dt.da;while(day>dysdt.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( );以上程序
14、的執(zhí)行結(jié)果是_3/2/2001_。六、編程題(每小題15分,共30分)1. 用模板設(shè)計一個堆棧類,包含判棧、讀棧、入棧和出棧功能,要求用成員函數(shù)重載“()”實現(xiàn)判棧功能,用友元函數(shù)重載“-”實現(xiàn)出棧功能。重載“-”為出棧?“<<”?判棧有判空和判滿。#include<iostream>using namespace std;template <class T>class Stack private: int size; int top; T *space; public: Stack(int n); Stack() delete space; void pu
15、sh( T t); friend ostream& operator<<(ostream& out,Stack &st) while(!(st.operator()() out<< st.spacest.top+<<endl; return out; bool operator ()() const return top = size; bool Isfull() const return top = 0; ;template <class T>Stack<T>:Stack(int size) this->
16、;size = size; top = size; space = new T size;template <class T>void Stack<T>:push(T t) if(!Isfull() space-top = t;int main() Stack<int>s(20);/可以指定棧的大小 s.push(1); s.push(2); s.push(3); s.push(4); s.push(5); s.push(6); cout<<s;這個沒問題,如果是重載 - 改為:#include<iostream>using name
17、space std;template <class T>class Stack private: int size; int top; T *space; public: Stack(int n); Stack() delete space; void push( T t); friend Stack & operator -(Stack &st) while(!(st.operator()() cout<< st.spacest.top+<<endl; bool operator ()() const return top = size;
18、bool Isfull() const return top = 0; ;template <class T>Stack<T>:Stack(int size) this->size = size; top = size; space = new T size;template <class T>void Stack<T>:push(T t) if(!Isfull() space-top = t;int main() Stack<int>s(20);/可以指定棧的大小 s.push(1); s.push(2); s.push(3)
19、; s.push(4); s.push(5); s.push(6); -s;但是這個在VC下不行,在codeblocks下使用mingw32-g+.exe可以正常編譯執(zhí)行,運行截圖: 請參考2. 利用基類、派生類和虛函數(shù)的概念編寫一個程序計算三角形、矩形和圓形的面積。#include <iostream>const double PI = 3.1415926;using namespace std;struct Point Point() x = y = 0; Point(double X, double Y) :x(X), y(Y); double x; double y;cla
20、ss shape public: virtual double GetArea()=0; / 虛函數(shù),純虛函數(shù),圖形不具體的話,無法求面積 virtual void Print()=0; / 虛函數(shù),純虛函數(shù),圖形不具體的話,無法輸出面積;/ 三角形類,繼承自圖形類class trigon : public shape public: trigon(Point &A, Point &B, Point &C) : a(A), b(B), c(C); trigon(); double GetArea() / 自己找公式吧,根據(jù)三點計算面積的 area = 0; return
21、 area; void Print() cout << "三角形【(" << a.x << "," << a.y << "):(" << b.x << "," << b.y << "):(" << c.x << "," << c.y << ")】的面積是:" << GetArea() <
22、;< endl; private: trigon(); Point a, b, c; / 三角形三個點 double area; / 面積;/ 矩形類,繼承自圖形類class rect : public shape public: 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;
23、pb.y = Bottom; pc.x = Right; pc.y = Top; pd.x = Right; pd.y = Bottom; ; rect(); double GetArea() / 計算矩形面積 / return (right - left) * (bottom - top); void Print() cout << "矩形【(" << pa.x << "," << pa.y << "):(" << pb.x << ",&q
24、uot; << pb.y << "):(" << pc.x << "," << pc.y << "):(" << pd.x << "," << pd.y << ")】的面積是:" << GetArea() << endl; private: rect(); Point pa, pb, pc, pd; / 矩形左上、左下、右上、右下四個點坐標(biāo) double top, bottom, left, right; / 矩形上下左右四個線的坐標(biāo)線 double area; / 面積;/ 圓形類,繼承自
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年網(wǎng)絡(luò)工程師職業(yè)技能測試卷:網(wǎng)絡(luò)設(shè)備配置與故障排除實戰(zhàn)試題集
- 2025辦公樓租賃合同租金與裝潢條款的詳細規(guī)定
- 2025農(nóng)村個人林地抵押借款合同
- 江蘇省海安八校2025年初三第一次模擬(期末)物理試題含解析
- 民辦安徽旅游職業(yè)學(xué)院《傳統(tǒng)養(yǎng)生學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北理工學(xué)院《電視專題與專欄》2023-2024學(xué)年第二學(xué)期期末試卷
- 九江職業(yè)大學(xué)《傳媒專業(yè)英語》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢民政職業(yè)學(xué)院《林木生物信息學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 三門峽職業(yè)技術(shù)學(xué)院《影視音樂》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年標(biāo)準(zhǔn)租賃合同模板2
- 6.3.1 平面向量基本定理 課件(共15張PPT)
- 建筑消防設(shè)施巡查記錄
- 混凝土護欄檢查記錄表
- 廚房隔油池清理記錄
- 常見生物相容性實驗匯總
- DBJ04∕T 258-2016 建筑地基基礎(chǔ)勘察設(shè)計規(guī)范
- 綜合探究三 探尋絲綢之路(課堂運用)
- 職業(yè)危害防治實施管理臺賬
- 社會團體民辦非清算審計報告模板
- 畢業(yè)設(shè)計U型管換熱器設(shè)計說明書
- 建筑工程質(zhì)量檢測收費項目及標(biāo)準(zhǔn)表67262
評論
0/150
提交評論