版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、上海大學 2004-2005年冬季學期試卷成績課程名:面向對象程序設計C+ 學分: 5 學號: 姓名: 院系: 一 選擇1 使用標準C+庫進行控制臺的輸入輸出,要求聲明:A#include B#includeusing namespace std; using namespace std;C#includeD#include#using namespace std; #define namespace std;2 寫一條語句,動態(tài)分配10個double 空間的內存,地址賦給p :A. double p=new double;B. double *p=new double10;C. double
2、 p=new double(10);D. double *p=malloc( sizeof(double)*10);3 (多選)要設計一個汽車制造調度系統(tǒng),正確的是:A構造Automobile類,BuildEngine類,Machine類,Work類,Name類。B構造Automobile類,Engine類,PaintMachine類,Machine類,Worker類。CAutomobile類含有Engine類型的成員變量。DPaintMachine類作為Machine類的基類。E變量MaryLeakey是Worker類的一個實例。FWorker類作為Name類的派生類。4. (多選)下面說法
3、正確的有:A. 用class進行類的定義,類的成員在默認情況下是私有的。B. C+語言的變量聲明必須寫在函數(shù)代碼的開頭地方。C.一個抽象類,不能實例化。D. 類的構造函數(shù)返回類型是voidE. 在類的成員變量是指針時,應該考慮設計一個拷貝構造函數(shù)。F. 類的靜態(tài)成員函數(shù)不能訪問非靜態(tài)成員。5. 重載操作符從輸入流中抽取數(shù)據(jù)到CMy類型的對象中正確的設計是A. istream operator( istream in, CMy obj); B. istream & operator( istream in, CMy obj); Cistream & operator( istream& in,
4、CMy obj); Distream & operator( istream &in, CMy & obj); 6. 聲明一組函數(shù),函數(shù)簽名有沖突的是1)void Func( int *a) ; 2) int Func( int *p ); 3)void Func(int a,int b); 4) int Func( int &a ); A.1)、2)B.1)、3)C.2)、4)D.都有7 (多選)對以下的函數(shù)聲明,合法的調用方式有。void getstr(string &buff, char term=n);Astring str; getstr(str);Bstring buff; get
5、str(&buff);Cstring str; getstr(str, t);Dchar *buff=”abc”; getstr(buff, t);8 用C+標準庫連接字符串,字符串str初值”abcd”,然后連接串”efg”:A. char *str=”abcd”; str+=”efg”;B.string str=”abcd”;str+=”efg”;C. char str =”abcd”; strcat(str,”efg”);D. char str=”abcd”, str=str+”efg”;二 填空1面向對象程序設計語言的主要特征是_2C+標準模板庫的名空間的名稱是_3-7. 復數(shù)類代碼填
6、空class Complexdouble real;double image;public:Complex()Complex(double r) _ Complex(double r,double i)_operator - (Complex t, Complex u );_ operator - (Complex t, Complex u ) /復數(shù)減實現(xiàn)return _8-19. 編寫影片管理程序#include#includeusing namespace std;class Filmpublic:Film(string t,string d) title=t; director=d;s
7、tring title;string director;_ ;/聲明數(shù)據(jù)打印函數(shù)output;void Film:output() /實現(xiàn)數(shù)據(jù)打印函數(shù)outputcout” title:” title” director:” directorendl;class _ /聲明導演影片剪輯片類DirectorCutpublic:DirectorCut(string t,string d, string c):_ changes=s;string changes;void output( )_cout” changes:” changesendl;class _ /聲明外國影片類ForeignFil
8、mpublic:ForeignFilm(string t,string d, string l): Film(t,d)_ string language;_ /聲明數(shù)據(jù)打印函數(shù)outputFilm:output();cout” language:” _ select;Film *pFilm;if(select=0)pFilm =new Film(“紅高粱”,”張藝謀”);else if(select=1) /創(chuàng)建DirectorCut對象_ DirectorCut(“xxx”,”xxxx”,”xxxxxx”); else /創(chuàng)建ForeignFilm對象_(“HarryPotter”,”xxx
9、x”,” English”); pFilm-output();_ pFilm; /銷毀對象20-24在一個數(shù)組list中查找數(shù)據(jù)key,數(shù)組中元素的數(shù)據(jù)類型是摸板類型,設計其摸板函數(shù)。成功返回其下標,否則返回-1。template_ find( _ ) / 查找key for( _ ) if( listi = = key )return i;_;三 閱讀程序1寫出輸出結果: _void main()int *p1=new int;int *p2=new int;if(p1=p2)cout” p1與p2相等”end;else cout” p1與p2不相等”end;2寫出輸出結果: _class
10、B protected: virtual void f( ) cout”B”endl; public:void g( ) f( ); ;class D : public Bprotected: virtual void f( ) cout”D”endl;void main( ) D d;d.g( ); 3寫出輸出結果: _ double somefunc( int x,int y) if( y=0 )throw “er:分母是0”; return x/y; void main( )try cout somefunc (2,1)endl; cout somefunc (2,0)endl; cat
11、ch( char *e) couteendl;4寫出輸出結果: _#include # include using namespace std;void print( int i) coutiendl;void main() vector v(5); for( int i=0; i5;i+) vi=2*i;for_each(v.begin(),v.end(),print);5. 寫出輸出結果: _#include using namespace std;class CBstatic int n;int a;public:CB()n+; a=1; CB()n-;int getN() return
12、 n; int getA() return a; ;int CB:n=0;void main( )CB b;CB *pb=new CB;coutgetN() getA()endl;delete pb;coutb.getN() b.getA()endl;6.寫出下面程序有標號的代碼行調用序列(寫法舉例:(1),(1),(2), (1))_7寫出輸出結果:_#include #include #include #include using namespace std;class CObjpublic:CObj() CObj(string type)m_type=type;virtual void
13、load(istream &in) inm_IDname; /1string name; string m_ID;string m_type;class CStudent : public CObjpublic:CStudent() : CObj(CStudent) virtual void load(istream &in);void setCourseScore(string courseID,int score) courseScorescourseID=score; map courseScores;void CStudent:load(istream &in)CObj:load(in
14、); int n; inn;for(int i=0;icourse; int score;inscore;setCourseScore(course,score);class CCourse : public CObjpublic:CCourse(): CObj(CCourse);class CManagepublic:CManage() for(map:iterator p=m_AllObj.begin();p!=m_AllObj.end(); p+)CObj* pobj=p-second; delete pobj;m_AllObj.clear();void Read(const char*
15、 filename)ifstream ifile(filename);while(ifile)string type;ifiletype;CObj *pObj=0;if(type=CStudent) pObj=new CStudent;else if(type=CCourse) pObj=new CCourse;else break;pObj-load(ifile); m_AllObjpObj-m_ID=pObj;void Report(string studentID)tryCObj* pStu=m_AllObjstudentID;CStudent* pStudent=dynamic_cas
16、t(pStu);coutname成績表endl;map &courseScores=pStudent-courseScores;for(map:iterator p=courseScores.begin();p!=courseScores.end(); p+)CObj* pCour=m_AllObjp-first;CCourse *pCourse=dynamic_cast(pCour);coutnametsecondendl;catch(.)cout此學生不存在,或數(shù)據(jù)庫出錯!endl;private: map m_AllObj;void main( )CManage manage;manag
17、e.Read(data.txt); /文件data.txt有數(shù)據(jù),見后manage.Report(020001);數(shù)據(jù)文件data.txt中有數(shù)據(jù)如下:CStudent 020001 張三 2 A001 80 A002 70 CStudent 010002 李四 3 A001 80 A002 70 A003 70CCourse A001 數(shù)學CCourse A002 物理CCourse A003 化學四對有標號的行,有錯標記X,無錯標記,可以修改的修改。class Unknownpublic:virtual void v(int x)=0; /1 /2 class BC : public Un
18、known /3 public:BC( ) c=1; /4 BC(int a) x=a; /5_void BC( ) /6 int & X( ) return x; /7 static void setX(int a)x=a; /8 int getX( )return this-x; /9 static void setS( int a) s=a; /10_int getS()return s; /11_virtual void v(int a) protectedFunc (a); /12_void m(int a) privateFunc(a); /13_private:int x;sta
19、tic int s;const int c;void privateFunc( int a) x=c*a; protected:void protectedFunc( int a) x=s*a; ;class DC : BC /14._ public: DC( )DC(int a) BC( a ); /15 DC(int a ) /16_virtual void v(int a) privateFunc(a); /17_void m(const char * a);void DC: m(const char * a) /18._BC:m(0); /19 protectedFunc(1); /2
20、0_int BC:s=0; /21 int main( ) Unknown un;/22_DC dc;dc.m(10); /23._dc.m(“abc”); /24._int x=dc.getX( ); /25_BC bc;bc.privateFunc(1); /26_tectedFunc(1); /27_BC:m(1); /28_Unknown *pb=new BC;pb-v(1); /29 delete pb; /30 DC *pdc 1= new BC;/31 BC *pb2=&dc; /32 pb2-m(2); /33 BC *pdc2=new DC; /34 DC *pd
21、c2= dynamic_cast(pdc2); /35 四 設計類1. 設計棧Stack模板類,基本要求是要實現(xiàn)Push和Pop先進后出的操作,并編一個main() 函數(shù)測試它。2. 設計一個類層次體系1)Person類,包括姓名、身份證號碼。 2)CollegeStudent類,包括姓名、身份證號碼、學校名稱。3)Profession類,包括姓名、身份證號碼、學歷、收入?;疽笫翘峁┰L問其數(shù)據(jù)的成員函數(shù),其他可任意發(fā)揮,并編一個main()函數(shù)測試。/完/2004-2005年冬季學期試卷 標準答案一。選擇(每題2分,其中多選題選錯不給分,少選給1分,共16分)1。A 2。B3。BCE4。A
22、CEF5。D6。A7。AC8. B二。填空(填空每空一分 ,共24分)1。封裝 繼承 多態(tài)2。Std3. real=r; image=0;real=r; image=r;friend Complex ComplexComplex(t. real-u. real,t. image- u.image)8-19. stringvirtual void output( );DirectorCut : public FilmFilm(t,d)Film:output();ForeignFilm: public FilmLanguage=l;void output( )LanguagepFilm =newp
23、Film =new ForeignFilmdelete 20-24class Tint T list,int n,T key int i=0;in;i+return -1;三。閱讀程序 共16分1。p1與p2不相等/2分2。D/2分3.2 er:分母是0/2分4. 0 2 4 6 8/2分5. 2 1 11/2分6.1) 2) 1) 2) 1) 1) 1)/3分7.張三成績表 數(shù)學 80物理 70/3分四對有標號的行,有錯標記X,無錯標記,可以修改的修改。(-0.5分X -1分(指出錯誤0.5分 修改0.5分)共24分)1. 2.X3. 4.X5. 6.X7. 8.X9. 10. 11. 12
24、. 13. 14.X15.X16.X17.X18. 19. 20. 21. 22.X23.X24. 25. 26.X27.X28. X29. 30. 31.X32. 33. 34. 35. 五編程題(共20分)一。(10分)#include #include using namespace std;templateclass Stack public:Stack();virtual Stack();void push(const T&e);T pop();int getlength()return top+1;private:T *elements;int top;templateStack:Stack()elements=new Tsize;top=-1;templateStack:Stack()delete elements;templatevoid Stack:push(const T&e)assert(topsize-1);elements+top=e;templateT Stack:pop()assert(top=0);return elementstop-;int _tmain(int argc, _TCHAR* argv)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內訓師培訓制度及流程
- 優(yōu)化培訓流程管理制度
- 產科巾幗文明崗培訓制度
- 技術售后培訓管理制度
- 售樓部培訓期間獎金制度
- 養(yǎng)殖場生物安全培訓制度
- 婦科內鏡培訓管理制度
- 遺傳咨詢科培訓制度
- 二手中介新人培訓制度
- 編程教師培訓制度及流程
- 深圳加油站建設項目可行性研究報告
- 浙江省交通設工程質量檢測和工程材料試驗收費標準版浙價服定稿版
- GB/T 33092-2016皮帶運輸機清掃器聚氨酯刮刀
- 中學主題班會課:期末考試應試技巧點撥(共34張PPT)
- 紅樓夢研究最新課件
- 吊索具報廢標準
- 給紀檢監(jiān)察部門舉報材料
- 低壓電工安全技術操作規(guī)程
- 新增影像1spm12初學者指南.starters guide
- GA∕T 1577-2019 法庭科學 制式槍彈種類識別規(guī)范
- 水環(huán)境保護課程設計報告
評論
0/150
提交評論