面向對象程序設計二試卷B_第1頁
面向對象程序設計二試卷B_第2頁
面向對象程序設計二試卷B_第3頁
面向對象程序設計二試卷B_第4頁
面向對象程序設計二試卷B_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

資料內容僅供您學習參考,如有不當或者侵權,請聯系改正或者刪除。華僑大學面向對象程序設計(二)試卷(B)系別考試日期06月27日姓名學號成績一、填空題(15分,每空1分)類的成員包括____________和_____________。建立一個類對象時,系統(tǒng)自動調用____________。如果希望類的成員為該類所有對象所共享,能夠使用關鍵字________來修飾。如果希望完成所謂的深拷貝,需要重載_______構造函數。類成員的訪問控制包括_________、_________和__________。不屬于類成員但卻能夠訪問類的私有數據變量的函數是該類的_________。運算符>>和<<重載只能經過__________函數實現。類定義中,默認的訪問控制是_______。C++函數中參數值的傳遞方式有________、__________、_________。繼承關系能夠是public、protected和________。二、選擇題(20分,每小題2分)類名稱不能以開頭。A)小寫字母B)大寫字母C)數字D)下劃線下列選項中,不是C++關鍵字的是______。classB)virtualC)publicD)object對于類Base,如果沒有為其定義構造函數,系統(tǒng)將自動為我們創(chuàng)立一個形為_____的默認構造函數。Base(constBase&);B)Base(intx=0);voidBase(void);D)Base();對于類Base,下列選項______是合法的析造函數。void~Base(){}B)~Base(){}C)~Base(int){}(D)Base~Base(){}下列語句中,_______不能為我們定義一個常量。A)#definePI3.1415926B)#definePI=3.1414926C)constdoublePI=3.1415926;D)conststaticdoublePI=3.1415926;為了提高函數調用的實際運行速度,能夠將較簡單的函數定義為______。遞歸函數B)友元函數C)內聯函數D)成員函數下列運算符中,______運算符不能被重載。A)?:B)+C)[]D)>>下列關于構造函數的描述中,錯誤的是______。A)構造函數能夠沒有參數B)構造函數不能夠設置默認參數C)構造函數能夠是內聯函數D)構造函數能夠重載下面描述中,表示錯誤的是_______。公有繼承時基類中的public成員在派生類中仍是public的公有繼承是基類中的private成員在派生類中仍是private的公有繼承是基類中的protected成員在派生類中仍是protected的私有繼承時基類中的public成員在派生類中是private的運算符重載是對已有的運算符賦予多重含義,因此_______能夠對基本類型(如double類型)的數據,重新定義”+”運算符的含義能夠改變一個已有運算符的優(yōu)先級和操作數個數C++中已經有的所有運算符都能夠重載只能重載C++中已有的運算符,不能定義新運算符已知類MyInt的定義如下:classMyInt{ intdata;public: MyInt(intd){data=d;} };下列對MyInt類對象數組的定義和初始化語句中,正確的是MyIntmyInts[3];MyIntmyInts[3]={MyInt(2)};MyIntmyInts[3]={MyInt(3),MyInt(4),MyInt(5)};MyInt*myInts=newMyInt[3];三、閱讀以下程序并填空(填上正確的語法成分),使其成為完整的程序(20分,每空2分)已知向量MyVector的定義如下,data存放數據,capacity是當前分配的空間大小,length是data里實際存放的元素數目。(1)實現構造函數,分配大小為n的空間,并都初始化為0;(2)實現析構函數,釋放分配的空間;(3)重載流插入運算符<<,將當前data的所有元素都依次打印出來,格式如3245。classMyVector{ int*data; //指向存放數組數據的空間 intcapacity;//當前分配的空間大小 intlength; //當前實際的元素數目public: MyVector(intn); ~MyVector(){delete____(1)______;} ___(2)___ostream&operator<<(ostream&out,constMyVector&mv);};MyVector::MyVector(intn){ //實現構造函數 assert(n>0); data=______(3)______; capacity=n; length=0; for(inti=0;i<n;i++) *(data+i)=0;}ostream&operator<<(ostream&out,constMyVector&mv){//重載運算符<< for(inti=0;__(4)__;i++) out<<___(5)______<<””; out<<endl; returnout;}類Derived公共繼承于Base。Base的構造函數有一個參數i用于初始化其數據成員v。Derived的構造函數有三個參數val1,val2和val3,分別用于初始化Base的數據成員v以及Derived的數據成員v1、v2。classBase{ intv;public: Base(inti):____(6)______{}};classDerived:____(7)______{ intv1,v2;public: Derived(intval1,intval2,intval3):____(8)_____,____(9)_____,__(10)______{}};四、讀程序,寫出運行結果(25分,每題5分)voidf(inti){ staticintcalledTimes=0; cout<<"No."<<++calledTimes<<"inf("<<i<<")"<<endl;}intmain(){ inti=0; for(inti=0;i<5;i++)f(i+1); cout<<"i="<<i<<endl;}classBase{public:voidprint(){cout<<"InBase::print()"<<endl;}; }classDerived:publicBase{public:voidprint(){ Base::print();cout<<"InDerived::print()"<<endl;}};intmain(){Derivedd;d.print();return0;}classBase{ public:Base(inti=0,intj=0){a=i;b=j;}voidprint(){cout<<”a=”<<a<<”,b=”<<b<<endl;}private:inta,b;};voidmain(){Basem,n(4,8);m.print();n.print();}classMyClass{public: MyClass(){cout<<"MyClass()"<<endl;} MyClass(constMyClass&another){cout<<"MyClass(constMyClass&another()"<<endl;} MyClass&operator=(constMyClass&rhs){cout<<"operator=()"<<endl;return*this;}};intmain(){ MyClassmc1; MyClassmc2=mc1; MyClassmc3(mc2); mc1=mc3; return0;}classAnimal{public: Animal(){cout<<"Animal::Animal()"<<endl;} ~Animal(){cout<<"Animal::~Animal()"<<endl;}};classCat:publicAnimal{public: Cat(){cout<<"Cat::Cat()"<<endl;} ~Cat(){cout<<"Cat::~Cat()"<<endl;}};intmain(){ Catanimal; }五、編程題(共20分)請實現三個能夠支持兩個、三個和n個整數相加的重載函數。函數名統(tǒng)一為add,返回值統(tǒng)一為int,例如兩個整數相加的版本為intadd(int,int)。給定類IntegerNumber的定義如下,要求實現如下五個運算符重載。classIntegerNumber{ intvalue;public: IntegerNumber(intn=0){value=n;} IntegerNumberoperator+(constIntegerNumber&rhs); IntegerNumberoperator-(constIntegerNumber&rhs); friendIntegerNumberoperator++(IntegerNumber&a,intx); //后++ friendIntegerNumber&operator++(IntegerNumber&a); //前++ friendostream&operator<<(ostream&out,IntegerNumber&rhs);};

華僑大學面向對象程序設計(二)試卷(B)答題紙系別考試日期06月27日姓名學號成績題號第一題第二題第三題第四題第五題總分成績閱卷人一、填空題(15分,每空1分)1.、2.3.4.5.、、6.7.8.9.、、10.二、選擇題(20分,每小題2分)1.2.3.4.5.6.7.8.9.10.三、閱讀以下程序并填空(填上正確的語法成分),使其成為完整的程序(20分,每空2分)1.______________________2.______________________3.______________________4.______________________5.______________________6.______________________7.______________________8.______________________9.______________________10._____________________四、讀程序,寫出運行結果(25分,每題5分)1.________________________________________________

溫馨提示

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

評論

0/150

提交評論