中科大軟件學院C++考試試卷.docx_第1頁
中科大軟件學院C++考試試卷.docx_第2頁
中科大軟件學院C++考試試卷.docx_第3頁
中科大軟件學院C++考試試卷.docx_第4頁
中科大軟件學院C++考試試卷.docx_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

學號 _ 姓名 _ 成績 _面向對象編程技術試卷注:1)請將答案寫在答題紙上,寫在試卷上不算分。答題紙在試卷的最后頁。2)交卷時,試卷和答題紙一起交。一、單選題 (每小題1.5分,共30分)1. C+中,以下有關構造函數的敘述不正確的是 _ 。A. 構造函數名必須和類名一致B. 構造函數在定義對象時自動執行C. 構造函數無任何函數類型 D. 在一個類中構造函數有且僅有一個2以下敘述不正確的是 _ 。A. 在類的定義中,通常是成員變量描述對象的屬性;用成員函數描述對象的行為B. 類的一個成員只能具有一種訪問控制屬性C. 構造函數和析構函數是特殊的成員函數,因此不允許重載D. 通過對象只能訪問類的公有成員3. 以下關于虛函數的敘述不正確的是 _ 。A. 虛函數屬于成員函數 B. 虛函數不允許說明成靜態的C. 凡是虛函數必須用virtual說明 D. 虛函數可以被繼承4. cout是I0流庫預定義的 _ 。 A類 B. 對象 C. 包含文件 D. 常量5面向對象程序設計中的數據隱藏指的是 _ 。 A輸入數據必須輸入保密口令 B數據經過加密處理C. 對象內部數據結構上建有防火墻 D對象內部數據結構的不可訪問性6拷貝(復制)構造函數的作用是 _ 。A進行數據類型的轉換 B用對象調用成員函數C用對象初始化對象D用一般類型的數據初始化對象7. 下列不是描述類的成員函數的是 _ 。A.構造函數 B.析構函數C.友元函數 D.拷貝構造函數8. 如果類A被說明成類B的友元,則 _ 。A. 類A的成員即類B的成員 B. 類B的成員即類A的成員C. 類A的成員函數不得訪問類B的成員 D. 類B不一定是類A的友元9. 對于任何一個類,析構函數最多有 _ 個。A. 0 B. 1 C. 2 D. n10. 下列特性中,C與C+共有的是 _ 。A.繼承B.封裝C.多態性D.函數定義不能嵌套11. 在公有繼承的情況下,基類公有和保護成員在派生類中的訪問權限 _ 。 A. 受限制B. 保持不變C. 受保護D. 不受保護 12. 通過 _ 調用虛函數時,采用動態束定。A. 對象指針B. 對象名 C. 成員名限定 D. 派生類名 13. C+ 類體系中,不能被派生類繼承的有 _ 。 A. 成員轉換函數B. 構造函數 C. 虛函數 D. 靜態成員函數 14. 假定 ab 為一個類,則執行 ab x; 語句時將自動調用該類的 _ 。 A. 有參構造函數 B. 無參構造函數 C. 拷貝構造函數 D. 賦值構造函數 15. 靜態成員函數不能說明為 _ 。 A. 整型函數 B. 浮點函數 C. 虛函數 D. 字符型函數 16. 在 C+ 中,數據封裝要解決的問題是 _ 。 A. 數據規范化排列 B. 數據高速轉換 C. 避免數據丟失 D. 保證數據完整性17關于友元函數的描述中,錯誤的是 _ 。A. 友元函數不是成員函數 B. 友元函數只能訪問類中私有成員C. 友元函數破壞隱藏性,盡量少用D. 友元函數說明在類體內,使用關鍵字friend 18. 實現運行時的多態性用 _ 。 A. 重載函數B. 構造函數 C. 析構函數 D. 虛函數 19. 關于 new和new 運算符的下列描述中,_ 是錯誤的。A 它可以用來動態創建對象和對象數組;B使用它創建的對象或對象數組可以使用運算符 delete和delete 刪除;C使用它創建對象時要調用構造函數;D使用它創建對象數組時必須指定初始值;20下列關于虛函數的說明中,正確的是 _ 。 A 從虛基類繼承的函數都是虛函數。 B 虛函數不得是靜態成員函數。 C 只能通過指針和引用調用虛函數。 D 抽象類中的成員函數都是虛函數。二、寫出下列程序的運行結果,如您覺得有錯,寫明出錯原因;如你覺得無輸出,請明確寫出。(每小題5分,共40分)1#include using namespace std;class Aprotected:int a;public:A(int p1) a=p1; int inc1(void) return +a; ;class B1:public Aprotected:int b1;public:B1(int p1,int p2):A(p1) b1=p2; int inc1(void) return A:inc1(); void display(void) couta=a b1=b1n; ;class B2:public Aprivate:int b2;public:B2(int p1,int p3):A(p1) b2=p3; int inc1(void) A:inc1(); A:inc1(); return A:inc1(); void display(void) couta=a b2=b2n; ;class C:private B1,public B2private:int c;public:C(int p11,int p12,int p21,int p22,int p):B1(p11,p12),B2(p21,p22) c=p; int inc1(void) return B2:inc1(); void display(void) B1:display(); B2:display(); coutc=cn; ;int main(void)C d(1,2,3,4,5);coutn;d.display();coutn;d.inc1();d.display();return 0; 2#include using namespace std;templateclass TclassT x,y;public: Tclass (T a,T b):x(a) y=b; Tclass (T a) y=(T)0, x=a; void pr( )char c; c=(y=(T)0)? +:-; coutxc(T)0 ? y : -y) iendl; ;int main( ) Tclass a(10.5,-5.8); a.pr( ); Tclass b(10); b.pr( );return 0; 3. #include #include #include using namespace std;int main () vectorvector datas; Ifstream ifs(test.dat); int m, n; ifs m n; int i, j; for (i = 0; i m; i +) vector V; for (j = 0; j x; V.push_back(x); datas.push_back (V); for (i = 0; i m; i +) for (j = 0 ;j n; j +) cout datas ij ; cout endl; 文件Test.dat內容如下 :3 4 1 2 3 4 5 6 7 8 9 1011 124.#include using namespace std;class CAT public: CAT() itsAge=new int;*itsAge=5; CAT() delete itsAge;itsAge=NULL; int GetAge() return *itsAge; void SetAge(int age) *itsAge=age; protected: int *itsAge; ;int main() CAT a; coutas age:a.GetAge()endl; a.SetAge(6);CAT b(a); coutas age:a.GetAge()endl;coutbs age:b.GetAge()endl; a.SetAge(7);coutas age:a.GetAge()endl; coutbs age:b.GetAge()endl; 5#include using namespace std;#include class Base private: char msg30; protected: int n; public: Base(char s,int m=0):n(m) strcpy(msg,s); void output(void) coutnendlmsgendl; ;class Derived1:public Base private:int n; public:Derived1 (int m=1): Base(Base,m-1) n=m; void output(void) coutnendl; Base:output(); ;class Derived2:public Derived1 private:int n; public:Derived2(int m=2):Derived1(m-1) n=m; void output(void) coutnendl; Derived1:output(); ;int main() Base B(Base Class,1); Derived2 D; B.output(); D.output();6#include using namespace std;class Rr public: Rr(int a)data=a; operator int()return data;operator double()return double(data); private:int data; ;int main()Rr r1(2),r2(4);int x=int(r1)+int(r2);double y=double(r1)/double(r2); coutx=x,y=yendl; return 0; 7.#include using namespace std;class sz int intT1;public:sz() intT1=5;void Set1(int t) intT1=t;int Get1() return intT1; ;class sz2 public:sz2() mszT=new sz(); mszT2=new sz();sz *f1() mszT2=new sz(); mszT2-Set1(1); return mszT2; sz *f2() const return mszT; const sz *f3() return mszT; const sz *f4() const return mszT2;private: sz *mszT; sz *mszT2; ;int main() sz t; sz2 f; sz *s1=f.f1(); coutGet1()Set1(10); coutGet1()endl; s1=f.f2(); coutGet1()Set1(20); coutGet1()endl; const sz *s2=f.f3(); t=*s2; coutt.Get1()endl; s2=f.f1();t=*s2; coutt.Get1()endl; sz * const s3=f.f1(); t=*s3; coutt.Get1()Set1(30); coutGet1()endl; return 0; 8.#include using namespace std;class A public: virtual void print(int x) cout A: x t ; ;class B:public A public: virtual void print(float x) cout B: x t; ;class C:public A public: virtual void print(int x) cout C: x endl; ;void show(A &a) a.print(3); void main( )A a;B b;C c;a.print(1);b.print(2);c.print(3);show(a); show(b); show(c); 三、 程序填空題(每空2.5分,共25分) 1 下面程序定義了一個圓類,其數據成員為圓心坐標和半徑,成員函數area()計算圓的面積,應用程序生成兩個圓類實例,若是同心圓則計算圓環的面積。#include using namespace std;const double pi=3.14159;class circleint x,y; /圓心坐標double r; /圓半徑 public:circle( _ ) / 參數缺省值均為0 x=i; y=j; r=a; int getx() return x; int gety() return y; double area(); ;_ area() return pi*r*r;void main() circle cmin(5,5,10), cmax(5,5,17); if ( _ ) /圓心坐標相同 coutring area= _ endl; /輸出圓環的面積2下列程序的輸出結果為012。#include using namespace std;class Testpublic:_ Test() void print() cout data; private:int data; ;int main()Test t3= _;for(int i=0;i3;i+) ti.print();return 0; 3下列程

溫馨提示

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

評論

0/150

提交評論