面向?qū)ο蠹夹g(shù)與C++(2)答案_第1頁
面向?qū)ο蠹夹g(shù)與C++(2)答案_第2頁
面向?qū)ο蠹夹g(shù)與C++(2)答案_第3頁
面向?qū)ο蠹夹g(shù)與C++(2)答案_第4頁
面向?qū)ο蠹夹g(shù)與C++(2)答案_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、面向?qū)ο蠹夹g(shù)與 C+ 試卷答案 (2)第一題 填充題 (10 分,每 1 個空格 1 分)1. 函數(shù)(模板 )能夠定義一個在不同數(shù)據(jù)類型基礎(chǔ)上完成同樣任務(wù)的一組函數(shù)。2. 在 public 方式的類繼承中, (派生)類的指針可作為 (基) 類的指針使用。3. 若一個類包含一個或多個純虛函數(shù),則該類為(抽象 )類。4. C+提供的(連接說明)能夠把C編譯器編譯好的函數(shù)與 C+程序正確地連接。5. ( static )數(shù)據(jù)成員是類的所有對象共享的信息。6. 每個對象都維護(hù)了一個指向自身的指針,這個指針稱為 (this )指針。7. 關(guān)鍵字 ( const ) 指定了不可修改的對象或變量。8. 重載

2、數(shù)組下標(biāo)運(yùn)算符 operator 時,應(yīng)將其聲明為類的 ( 成員 ) 函數(shù)。9. 在VC+中,連接器所生成的文件的擴(kuò)展名為(exe)。第二題 指出下列程序段中的錯誤,并說明錯誤原因 (10 分,每1小題 5分)1 class Time /表示時間的類聲明public:void Time(int,int,int);/第 1 個參數(shù)小時, 第 2 個參數(shù)為分鐘, 第 3 個參數(shù)為秒鐘/ 其他成員函數(shù)的原型說明private:void Time(int=12,int=10,int=0);int hour =12 , minute =10 , second = 0;1)void Time(int=12

3、,int=10,int=0); 構(gòu)造函數(shù)的訪問屬性應(yīng)為 public2)構(gòu)造函數(shù)不能指定返回類型3)兩個構(gòu)造函數(shù)的重載關(guān)系不正確4) int hour = 12 , minute = 10 , second = 0;不能直接賦初值5)最后少了一個分號 (;) 2 class Example public:void write() cout << v <<endl; virtual void f() write();private:int v;class Derived : public Example public :void write() cout <<

4、 Example:v << a << endl; virtual int f () write(); return 0; private:int a;1) Derived 的函數(shù) write() 不能直接訪問基類 Example 的成員數(shù)據(jù) v2) 虛函數(shù) f 的函數(shù)原型需相同第三題 選擇題 (10 分,每 1 個空格 1 分)1在類中說明的成員可以使用關(guān)鍵字( A ) ( D)進(jìn)行修飾。A privateB externC autoD publicE register2.對于類T 的非 const 成員函數(shù)來說,this的含義為(B)或(E)AT this;Bcons

5、t T* const this;CT* this;Dconst T* this;ET* const this;3 創(chuàng)建或刪除堆對象,需要使用操作符(B)(C)A->B newC deleteD .E *4通過(A )和(D)調(diào)用虛函數(shù)時,采用動態(tài)聯(lián)編。A 對象引用B 對象名C 成員名限定D 對象指針E this 指針5 以下哪個類型轉(zhuǎn)換是錯誤的?(B)void* pv;int* pi;Apv=pi;Bpi=pv;Cpv=(void*)pi;Dpi=(int*)pv;6.每個類(C)構(gòu)造函數(shù)。A 只能有一個B 只可有私有的C 可以有多個D 只可有缺省的第四題 簡答題(10 分)說明在類定義

6、中的關(guān)鍵字 static 的作用。關(guān)鍵字 static 定義類的靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。類的靜態(tài)數(shù)據(jù)成員是所有類的 對象所共享的數(shù)據(jù),而靜態(tài)成員函數(shù)用于處理靜態(tài)數(shù)據(jù)成員。第五題 寫出以下程序運(yùn)行時的輸出結(jié)果 (10 分)#include <iostream> using namespace std; class CObject public: virtual void myname() cout << " A. n" ;class CCmdTarget: public CObject void myname() cout << &qu

7、ot; B. n" ;class CWnd: public CCmdTarget void myname() cout << " C. n" ;class CControlBar: public CWnd ;int main( ) CObject a;CCmdT arget b;CWnd c;CControlBar d;CObject* pv4=&a,&b,&c,&d;CObject v4=a,b,c,d;for (int i=0;i<4;i+) v. myname(); pvi->myname(); ret

8、urn 0;A.A.A.B.A.C.A.C.第六題 寫出以下程序運(yùn)行時的輸出結(jié)果 (10 分)#include <iostream>using namespace std;class A public:A( ) cout << " A " A( ) cout << "!A "class B public:B ( ) cout << " B " B( ) cout << "!B " private:A m;class C : public Apublic:C

9、( ) cout << " C " C( ) cout << "!C "private:B m;B obj1,obj2;int main( )cout << endl; cout << endl; A obj2; C* p=new C; delete p; return 0;A B A B A A A B C !C !B !A !A !A !B !A !B !A第七題 編程題 (10 分 )編寫一個名稱為 mean 的函數(shù)模板計(jì)算若干個同類型參數(shù)值的平均值。template <class T>

10、double mean (T* a,int n) T s=0; for (int i=0;i<n;i+) s+=ai;return (double)s/n;第八題 編程題 (30 分 ) 定義并實(shí)現(xiàn)表示由整數(shù)元素組成的集合類型 IntSet 。 需提供的操作至少應(yīng)包括:構(gòu)造函數(shù)析構(gòu)函數(shù)插入元素 ( insert 函數(shù) )集合差運(yùn)算( - 運(yùn)算符 ) 集合顯示輸出 ( << 運(yùn)算符 )集合顯示輸出的格式為i ,i 2,空集的輸出為。IntSet 類型的使用例子如下:/*/* testIntSet.cpp */*/#include <iostream> using n

11、amespace std;#include "intset.h"int main()IntSet s1(100), s2(100);for (int i=100;i<=120;i+) s1.insert(i); s2.insert(i+5); /插入元素集合差cout << s1 << " - " << s2 << " = " << s1 - s2 << endl; / return 0;/*/* intset.h*/*/#ifndef INTSET_H#d

12、efine INTSET_H class IntSet int cursize,maxsize; int *x; bool member(int t) const; public:IntSet(int m = 100); IntSet(const IntSet&);IntSet(); void insert(int t);friend ostream& operator<<(ostream&,const IntSet&);IntSet operator-(const IntSet&);#endif*/* intset.cpp#include

13、<iostream>#include <cstdlib> using namespace std;#include "intset.h"IntSet:IntSet(int m) if (m<1) exit(1); cursize=0; x=new intmaxsize=m; IntSet:IntSet(const IntSet& m) cursize=m.cursize; x=new intmaxsize=m.maxsize;for (int i=0;i<cursize;i+) xi=m.xi;IntSet:IntSet() de

14、lete x; bool IntSet:member(int t) const int l=0; int u=cursize-1;while (l<=u) int m=(u+l)/2;if (t<xm) u=m-1; else if (t>xm) l=m+1; else return true;return false;void IntSet:insert(int t) if (member(t) return; if (cursize>=maxsize) exit(1); xcursize+=t;for (int i=cursize-1;i>0;i-)if (xi<xi-1) int temp=xi; xi=xi-1; xi-1=temp; else break;ostream& operator<<(ostream& os, const IntSet& is) cout << ""if (is.cursize>0) for (int i=0;i<is.cursize-1;i+)

溫馨提示

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

最新文檔

評論

0/150

提交評論