![C++考試試題答案要點_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/09cb6551-da36-4e46-b4b4-70b2fa30e87f/09cb6551-da36-4e46-b4b4-70b2fa30e87f1.gif)
![C++考試試題答案要點_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/09cb6551-da36-4e46-b4b4-70b2fa30e87f/09cb6551-da36-4e46-b4b4-70b2fa30e87f2.gif)
![C++考試試題答案要點_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/09cb6551-da36-4e46-b4b4-70b2fa30e87f/09cb6551-da36-4e46-b4b4-70b2fa30e87f3.gif)
![C++考試試題答案要點_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/09cb6551-da36-4e46-b4b4-70b2fa30e87f/09cb6551-da36-4e46-b4b4-70b2fa30e87f4.gif)
![C++考試試題答案要點_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/09cb6551-da36-4e46-b4b4-70b2fa30e87f/09cb6551-da36-4e46-b4b4-70b2fa30e87f5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上面向對象程序設計考試試題答案一、單項選擇題(在每小題的四個備選答案中,選出一個正確的答案,并將其號碼填在題干后的括號內(nèi)。每小題1分,共20分)1 面向對象程序設計將數(shù)據(jù)與_a_放在一起,作為一個相互依存、不可分割的整體來處理。A.對數(shù)據(jù)的操作 B.信息C.數(shù)據(jù)隱藏 D.數(shù)據(jù)抽象2. _a_不是面向對象系統(tǒng)所包含的要素。A.重載 B.對象C.類 D.繼承3. 按照標識符的要求,_a_符號不能組成標識符。A.連接符 B.下劃線C.大小寫字母 D.數(shù)字字母4. 已知ch是字符型變量,下面正確的賦值語句是_b_。A.ch=123; B.ch=xff;C.ch=08; D.ch
2、=”;5. 要求通過函數(shù)來實現(xiàn)一種不太復雜的功能,并且要求加快執(zhí)行速度,選用_a_。A.內(nèi)聯(lián)函數(shù) B.遞歸調用C.重載函數(shù) D.嵌套調用6. _c_的功能是對對象進行初始化。A.析構函數(shù) B.數(shù)據(jù)成員C.構造函數(shù) D.靜態(tài)成員函數(shù)7. 在下列關鍵字中,用以說明類中公有成員的是_a_。A.public B.privateC.protected D.friend8. _D_無返回類型,但又有return語句。A.虛函數(shù) B.內(nèi)聯(lián)函數(shù)C.友元函數(shù) D.類型轉換函數(shù)9. 類模板的使用實際上是將類模板實例化成一個具體的_A_。A.類 B.對象C.函數(shù) D.模板類10. 利用友元函數(shù)重載“>>
3、”運算符,第2個參數(shù)必須為_c_。 A.指針 B.對象C.引用 D.無值11. 用成員函數(shù)重載二元運算符,則顯式調用方式為_C_。A.obj1.operator(obj2) B.operator(obj1,obj2)C.obj1.operator( ) D.obj1obj212. 通??截悩嬙旌瘮?shù)的參數(shù)是_c_。A.某個對象名 B.某個對象的成員名C.某個對象的引用名 D.某個對象的指針名13. 已知一個類A,_B_是指向類A成員函數(shù)的指針。假設類有三個公有成員:void f1(int),void f2(int)和int a。A.A *p B.int A:*pc=&A:aC.void
4、A:*pa D.A *pp14. 用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.復用 B.單繼承C.繼承 D.多繼承17. 派生類的對象對它的基類成員中_A_是可以訪問的。A.公有繼承的公有成員 B.公有繼承的私有成員C.公有繼承的保護成員 D.私有繼承的公有成員18. 說
5、明靜態(tài)成員函數(shù)的關鍵字為_a_。A.static B.virtualC.friend D.void19. 下列運算符中,_c_運算符在C+中不能重載。A.?: B.+C.- D.<=20. cin是_b_類的標準對象的引用。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ù)調用合法的有_ABD_。A.f( ) B
6、.f(5) C.f(5,6)D.f(5,6,7) E.f(5,6,7,8)2. 不能用友元函數(shù)重載的運算符有_ABDE_。 A.= B. C.+D.-> E.( ) 3. 對一元運算符進行重載后,正確的顯式調用方式有_BD_。A.a B.operator(a) C.abD.a.operator( ) E.a4. 關于構造函數(shù),正確的描述有_。A.可以是虛函數(shù) B.可以有參數(shù) C.可以被繼承D.可以重載 E.可以顯式調用5. C+的模板有_DE_模板。A.運算符 B.數(shù)據(jù) C.類型D.類 E.函數(shù)三、名詞解釋(每小題2分,共8分)1. 封裝性:封裝就是將抽象得到的數(shù)據(jù)和行為(或功能)相結合
7、,形成一個有機的整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)的源代碼進行有機的結合,形成“類”,其中數(shù)據(jù)和函數(shù)都是類的成員。封裝的目的是增強安全性和簡化編程,使用者不必了解具體的實現(xiàn)細節(jié),而只是要通過 外部接口,一特定的訪問權限來使用類的成員。2. 類:實際上是對某種類型的對象定義變量和方法的原型。它表示對現(xiàn)實生活中一類具有共同特征的事物的抽象,是面向對象編程的基礎。3. 構造函數(shù):是一種特殊的方法 主要用來在創(chuàng)建對象時初始化對象 即為對象成員變量賦初始值,總與new運算符一起使用在創(chuàng)建對象的語句中 特別的一個類可以有多個構造函數(shù) 可根據(jù)其參數(shù)個數(shù)的不同或參數(shù)類型的不同來區(qū)分它們 即構造函數(shù)的重載4. 內(nèi)聯(lián)函
8、數(shù):,內(nèi)聯(lián)函數(shù)(有時稱作在線函數(shù)或編譯時期展開函數(shù))是一種編程語言結構,用來建議編譯器對一些特殊函數(shù)進行內(nèi)聯(lián)擴展(有時稱作在線擴展);也就是說建議編譯器將指定的函數(shù)體插入并取代每一處調用該函數(shù)的地方(,從而節(jié)省了每次調用函數(shù)帶來的額外時間開支。四、判斷分析題(判斷正誤,將正確的劃上“”,錯誤的劃上“”,并簡述理由。每小題3分,共12分)1. 空類就是沒有名字的類。錯??疹愂菦]有任何成員的類2 引用類型和指針類型作為函數(shù)的形式參數(shù)時,對調用函數(shù)的實際參數(shù)的要求是一樣的,均是地址。錯3. 在派生類中,若基類的一個成員在派生類中也把相同名字定義為一個成員, 則不可調整它的訪問。錯。因為基類構造函數(shù)的
9、調用順序是按照派生類定義時的順序,而內(nèi)嵌對象構造函數(shù)調用順序應該按照成員在類中聲明的順序.兩種都可以控制4. 對象數(shù)組在創(chuàng)建時要求構造函數(shù)不能有任何參數(shù)。錯。靜態(tài)數(shù)據(jù)成員是一個類的多個對象共享的五、讀程序、得結果(每小題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<&l
10、t;b<<endl; 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í)行結果是_3_。2. #include <iostream.h>class csample private: int i ; static int k;publi
11、c: csample();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í)行結果是_i=0,k=2I=0,k=2_。_。3. #include <iostream.h>class sample int x;public:void setx(int i)x=i;in
12、t putx()return 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í)行結果是_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(in
13、t m,int d,int 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
14、.disp( );以上程序的執(zhí)行結果是_3/2/2001_。六、編程題(每小題15分,共30分)1. 用模板設計一個堆棧類,包含判棧、讀棧、入棧和出棧功能,要求用成員函數(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 s
15、pace; void push( 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 s
16、ize) 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); s.push(4); s.push(5); s.push(6); cout<<s;這個沒問題,如果是重載 - 改為:#include<iostream&
17、gt;using namespace 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
18、 top = size; 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(
19、2); s.push(3); s.push(4); s.push(5); s.push(6); -s;但是這個在VC下不行,在codeblocks下使用mingw32-g+.exe可以正常編譯執(zhí)行,運行截圖: 請參考2. 利用基類、派生類和虛函數(shù)的概念編寫一個程序計算三角形、矩形和圓形的面積。#include <iostream>const double PI = 3.;using namespace std;struct Point Point() x = y = 0; Point(double X, double Y) :x(X), y(Y); double x; double
20、 y;class 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;
21、return 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) / 填充四個點的坐標 pa.x = Left; pa.y = Top; pb.x =
23、Left; 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 << &qu
24、ot;," << pb.y << "):(" << pc.x << "," << pc.y << "):(" << pd.x << "," << pd.y << ")】的面積是:" << GetArea() << endl; private: rect(); Point pa, pb, pc, pd; / 矩形左上、左下、右上、右下四個點坐標 double top, bottom, left, right; / 矩形上下左右四個線的坐標線 double area; / 面積;/ 圓形類,繼承自圖形類cla
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代企業(yè)如何通過公關活動吸引目標客戶
- 理論與實踐在文化傳承中尋求創(chuàng)新發(fā)展
- 國慶節(jié)鮮奶活動方案策劃
- Module5 Unit1 He is playing the suona,but the phone rings(說課稿)-2023-2024學年外研版(三起)英語六年級下冊
- 8《上課了》說課稿-2023-2024學年道德與法治一年級上冊統(tǒng)編版001
- 2023九年級數(shù)學上冊 第23章 圖形的相似23.4 中位線說課稿 (新版)華東師大版
- 9 知法守法 依法維權 說課稿 -2023-2024學年道德與法治六年級上冊(統(tǒng)編版)
- 2024年四年級英語上冊 Module 4 The world around us Unit 11 Shapes說課稿 牛津滬教版(三起)
- Unit8 I can do this for you 第三課時(說課稿)-2024-2025學年譯林版(三起)(2024)英語三年級上冊
- 3 光的傳播會遇到阻礙嗎 說課稿-2024-2025學年科學五年級上冊教科版
- 城市基礎設施修繕工程的重點與應對措施
- GB 12710-2024焦化安全規(guī)范
- 2022年中考化學模擬卷1(南京專用)
- 2023年主治醫(yī)師(中級)-眼科學(中級)代碼:334考試歷年真題集錦附答案
- 電力安全工作規(guī)程-(電網(wǎng)建設部分)
- 新加坡小學二年級英語試卷practice 2
- 小學五年級英語20篇英文閱讀理解(答案附在最后)
- 2023年遼寧鐵道職業(yè)技術學院高職單招(英語)試題庫含答案解析
- GB/T 23800-2009有機熱載體熱穩(wěn)定性測定法
- T-SFSF 000012-2021 食品生產(chǎn)企業(yè)有害生物風險管理指南
- 水庫工程施工組織設計
評論
0/150
提交評論