版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 写一条语句,动态分配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 (多选)要设计一个汽车制造调度系统,正确的是: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+语言的变量声明必须写在函数代码的开头地方。C.一个抽象类,不能实例化。D. 类的构造函数返回类型是voidE. 在类的成员变量是指针时,应该考虑设计一个拷贝构造函数。F. 类的静态成员函数不能访问非静态成员。5. 重载操作符从输入流中抽取数据到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. 声明一组函数,函数签名有冲突的是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 (多选)对以下的函数声明,合法的调用方式有。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. 复数类代码填
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 ) /复数减实现return _8-19. 编写影片管理程序#include#includeusing namespace std;class Filmpublic:Film(string t,string d) title=t; director=d;s
7、tring title;string director;_ ;/声明数据打印函数output;void Film:output() /实现数据打印函数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;_ /声明数据打印函数outputFilm:output();cout” language:” _ select;Film *pFilm;if(select=0)pFilm =new Film(“红高粱”,”张艺谋”);else if(select=1) /创建DirectorCut对象_ DirectorCut(“xxx”,”xxxx”,”xxxxxx”); else /创建ForeignFilm对象_(“HarryPotter”,”xxx
9、x”,” English”); pFilm-output();_ pFilm; /销毁对象20-24在一个数组list中查找数据key,数组中元素的数据类型是摸板类型,设计其摸板函数。成功返回其下标,否则返回-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此学生不存在,或数据库出错!endl;private: map m_AllObj;void main( )CManage manage;manag
17、e.Read(data.txt); /文件data.txt有数据,见后manage.Report(020001);数据文件data.txt中有数据如下:CStudent 020001 张三 2 A001 80 A002 70 CStudent 010002 李四 3 A001 80 A002 70 A003 70CCourse A001 数学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模板类,基本要求是要实现Push和Pop先进后出的操作,并编一个main() 函数测试它。2. 设计一个类层次体系1)Person类,包括姓名、身份证号码。 2)CollegeStudent类,包括姓名、身份证号码、学校名称。3)Profession类,包括姓名、身份证号码、学历、收入。基本要求是提供访问其数据的成员函数,其他可任意发挥,并编一个main()函数测试。/完/2004-2005年冬季学期试卷 标准答案一。选择(每题2分,其中多选题选错不给分,少选给1分,共16分)1。A 2。B3。BCE4。A
22、CEF5。D6。A7。AC8. B二。填空(填空每空一分 ,共24分)1。封装 继承 多态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.张三成绩表 数学 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 伤害调解协议书范本
- 2024年铜门制安合同协议书
- 借款合同范本-天津市私产房屋交易资金代收代付协议
- 混凝土购销合同
- 质押借款合同格式规范
- 房产融资协议模板
- 2024年技术开发合作协议
- 文言文虚词“之、而、其、已”的用法及专项练习(讲义)-人教部编版(一起)语文九年级(上册)
- 统编版语文三年级上册第四单元习作 续编故事(讲义)
- 热销产品代理协议样本
- 新版中国食物成分表
- 《智能锁具设计》课件
- 嵌入式操作系统FreeRTOS的原理与现
- 电商岗位职责及关键流程发布
- 高三一轮复习-工业革命
- 小学生怎样正确使用电子产品
- 土方工程施工进度计划制定
- 云南省情概况
- 快递物流行业培训资料
- 小学科学教学仪器配备标准
- 小儿抽动症的护理查房
评论
0/150
提交评论