




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海大学C++2014-2015秋A---答案--t序号试卷第1页(共5页)序号4.[]GetData函数功能是Get它动态创建的包含有数据的基地址,及数据个数,好的设计方案及客户对它的正确调用是: A.int
GetData(int4.[]GetData函数功能是Get它动态创建的包含有数据的基地址,及数据个数,好的设计方案及客户对它的正确调用是: A.int
GetData(int*pp); int*pd;intn=GetData(pd); B.int
*GetData(intn); intn=3;int*pd=GetData(n); C.int
GetData(intpp); int*pd;intn=GetData(pd); D.int
GetData(int**pp); int*pd;intn=GetData(&pd);5.[]已有定义classK{private: K();}; 修改错误: A.去掉private: B.Kk1;改为Kk1(); C.private改为public D.};改为}6.[](多选)设计一个影片管理系统,包括一般影片、外国片,影片剪接,现有一部外国影片Titanic(泰坦尼克号),如下的解决方案正确的有:A.Film作为基类,ForeignFilm和DirectorCut作为Film的派生类。B.Titanic作为Film的的成员变量。C.Titanic是ForeignFilm的一个实例。D.Film作为类ForeignFilm和类DirectorCut的成员变量。 E.数据输出Output函数采用虚成员函数,Film、ForeignFilm、DirectorCut都实现它。7.[]已有定义:classBC{public:intb;voidmfunc(){cout<<"BC";}};classDC:publicBC{public:intd;voidmfunc(){BC::mfunc();cout<<"DC";}};BCbc;
DCdc;
BC*pb=newDC;以下代码正确的是:A.bc.d=1; B.pb->d=1; C.DC*p=pb;
p.d=1;D.DC*pdc=static_cast<DC*>(pb);pdc->d=1;8.[]重载右移操作符,从流输入数据到复数类对象,设计方案选择:A.istream&operator>>(istream&istm,Complex&c);B.istream&operator>>(istreamistm,Complexc);C.istream&operator>>(istream&istm,Complexc); D.istreamoperator>>(istreamistm,constComplex&c);E.Complexoperator<<(istreamistm);2014~2015学年一. 选择(16分,每题2分)1.[]以下面向对象程序设计(OOP)的基本概念不正确的是A. 计算机并不仅仅是一台机器,它更像我们大脑的一部分。B. 面向对象程序设计语言的目的是为了解决现实世界的模拟问题(如变电站系统).C. 对象类型的设计是面向对象程序设计的中心任务。D. 继承表示了基本类型和派生类型之间的相似性,一个基类具有所有由它派生出来的类型所共有的特性和行为。E. 当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型,而把它看作基本类型,应用OOP的多态性,编写不依赖于特殊类型的代码。F. C++语言中类实际上就是对象。2.[]要访问名空间IEC中的标识符LPHD,C++的方法是A.IEC::LPHD B.IEC.LPHDC.IEC:LPHD C.usingnamespacestd; LPHD3. []动态分配n个float元素的内存空间,C++编程方法是:A.float*p=newfloat[sizeof(float)]*n; B.floata[]=newfloat[n];C.float*p=newfloat[n];D.floata[n];intmain(){intmain(){Kk1;return0;}注:教师应使用计算机处理试题的文字、公式、图表等;学生应使用水笔或圆珠笔答题。试卷第2页(共5页)6.6.C++标准模板库的名空间的名称是___________7.函数参数的设计其数据传递有三种方式,分别是传________________________8.实现下面的类classCPerson{protected: stringname;public: voidsetname(stringname){_____8.1___=name;} stringgetname(){returnname;}};classCStudent:________8.2____________{ doublescore;public: _____8.3_____(){}//构造函数 ______8.4____________{this->name=name;}//构造函数 ______8.5______{}//析构函数 staticintcompareScore(Student&stu1,Student&stu2) { if(stu1.getscore()<stu2.getscore())return-1; elseif(_____________8.6_____________)return1; elsereturn0; } doublegetscore(){returnscore;} voidsetscore(doublescore){this->score=score;}};改写getname成员函数为外联式实现___________8.7_____________________改写setscore成员函数为外联式实现_____8.8______________________________ 二.填空(26分,1,7题每题3分,其他每空1分)1.面向对象程序设计语言的主要特征是______________________________2.返回对象的引用,修改下面代码int&dl(intn){ ___________intj=2*n; returnj;}3.下面代码CA和CB类型的对象分别有___3.1____个数据成员,实现类的构造函数,初始化数据成员classCA{private: inta;public: CA(inta){_____3.2_______}};4.设计一个函数decode,功能是对字符串,用密钥解码,设计函数原型 (接口)是:___4.1__________________________________________其中相关参数和返回的说明:________4.2__________________________5.异常处理代码填空intdiv(inta,intb){ if(b==0) ______5.1____“error:b==0”; returna/b;}classclassCB:publicCA{ intb;public: CB(inta,intb)________3.3______ { _____3.4______}};intintmain(){ try { intu,v; cin>>u>>v; cout<<"u/v="<<div(u,v); } _____5.2_______ { cout<<e<<endl; } return0;}试卷第3页(共5页)2.下面代码的输出结果__________________2.下面代码的输出结果__________________classB{public: B(){cout<<"B";}virtual~B(){cout<<"~B";}};voidmain(){ B*p=newZ;deletep;}3.下面的程序写入到data.txt文件中的内容___________3.1________________________屏幕显示的输出的内容_________________________3.2_____________________#include<fstream>#include<sstream>usingnamespacestd;;intmain(){ ostringstreamostm; stringname="wang";intage=20; ostm<<"姓名"<<name<<"年龄"<<age<<endl; ofstreamofile("data.txt"); ofile<<ostm.str();//写入到文件 ofile.close(); ifstreamifile("data.txt"); if(ifile) { stringstr1,name,str2;intage; while(ifile>>str1>>name>>str2>>age) { cout<<"姓名"<<name<<"去年"<<age<<"今年"<<age-2<<endl; } ifile.close(); } return0;}intmain(){ vector<____8.9_______>students; for(inti=0;i<10;i++) { stringname; intscore; cin>>name>>score; CStudentstu(name); stu.setscore(score); students.push_back(stu); } assert(students.size()>0);cout<<”与”<<students[0].getname()<<”分数相同的学生有:”<<endl; for(inti=1;i<students.size();i++) { intcomp=______________________8.10__________________________; if(comp==0)//i学生如果与0学生分数相同{ cout<<students[i].getname()<<endl;} } return0;}三.阅读程序(18分,每小题2分)1.写出输出结果:________ classB {protected:virtualvoidf(){cout<<”B”<<endl;} public: voidg(){f();} }; voidmain(){Dd; d.g(); }classclassZ:publicB{public: Z(){cout<<"Z";}virtual~Z(){cout<<"~Z";}};classD:publicBclassD:publicB{ protected: virtualvoidf(){cout<<”D”<<endl;}};试卷第4页(共5页)classIReportHandleclassIReportHandle{public: virtualvoidhandleReport(stringr)=0;①};classDevServiceClass{ vector<IReportHandle*>m_RCBs; stringm_r; voiddchgReport()//数据已变化,报告订阅者 { for(autoit=m_RCBs.begin();it!=m_RCBs.end();it++)② { IReportHandle*p=*it; p->handleReport(m_r); } }public: voidhookReport(IReportHandle*p)//订阅报告 { m_RCBs.push_back(p);③ } voidupdate(stringr)//更新数据 { m_r=r; ④ dchgReport(); }};classDevClientClass:publicIReportHandle{ stringm_name;public: DevClientClass(){m_name="DevClient";}⑤ virtualvoidhandleReport(stringr)//处理数据 { cout<<m_name<<"handleReport:"<<r<<endl;⑥ }};4.下面代码的输出结果__________________classA{public: voidm(constchar*str){ cout<<”A”<<str<<endl; }};classZ:publicA{public: voidm(){ cout<<"Z"<<endl; }};intmain(){ Zz1; z1.m(); z1.A::m(“a”); return0;}5.下面是设备监控系统采用事件驱动机制编写的一个简单示例程序,列出程序先后运行到断点位置(已用标号标记)的序号,或显示结果键盘输入数据前,程序依次运行到的断点序列号_________5.1____________从键盘输入MMXU1.PNV.phsA.cVal.mag.f=100.5A回车后的断点位置:__5.2___断点位置⑧然后程序依次运行到的断点序列号:5.3程序显示的输出结果:5.4#include<string>#include<iostream>#include<vector>usingnamespacestd;int_tmain(intargc,_TCHAR*argv[]){ DevServiceClassdev;⑦ DevClientClasscli; dev.hookReport(&cli); charstr[200]; cin.getline(str,sizeof(str));//采集数据 dev.update(str); ⑧ return0;}试卷第5页(共5页)五.程序设计五.程序设计(20分,第1题8分,第2题7分,第3题5分)设计一个模板容器类,功能是元素的压入和弹出在同一端进行,满足先进后出的要求.并编一个main函数测试该模板容器。模板容器类接口要求:类名:Stack模板参数表含模板类型参数T,和实例类型参数size(表示容器最大容量) 成员函数: push:压入元素; pop:弹出元素 empty:容器是否空; full:容器是否满 main()函数要求:创建你的模板容器类对象,循环压入n个string字符串,然后弹出显示。2.使用MFC设计一个图形层次类要求1)抽象图形类CShape成员变量m_x,m_y成员函数draw(CDC*),moveTo(x,y),CShape(x,y)CShape(x=0,y=0)2)圆类CCircle成员变量m_x,m_y,m_r成员函数draw(CDC*),moveTo(x,y),setR(r),CCircle(x,y,r)3)矩形框类CRectBox成员变量m_x,m_y,m_x1,m_y1成员函数draw(CDC*),moveTo(x,y),CRectBox(x,y,x1,y2)4)柱状图类CBarChart成员变量m_x,m_y,m_x1,m_y1//边框 m_datas//画柱状图的int数据容器成员函数moveTo(x,y),CBarChart(x,y,x1,y2) draw(CDC*)//画出边框,画出数据的柱状图,设每根柱的宽度=元素个数/(m_x1-m_x)addData(int)//添加数据到注:MFC相关类CDC类相关的成员函数 boolRectangle(intx1,inty1,intx2,inty2);//画矩形框(左上角,右下角) boolEllipse(intx1,inty1,intx2,inty2);//画椭圆(左上角,右下角) 程序不要求考虑画笔及其填充色的问题。 类间关系要使用继承.3.IEC61850变电站通信网络与系统C++程序设计(课外项目代码)四.改错(对有标号的行,有错标记X,无错标记√)(20分,每小题0.5分)classIObj{public: virtualvoidvfunc(intx)=0;//1____} //2___classBC:IObj //3____{ intb; staticints; constintc;public: BC():c(0){}//4_____ BC(intx){b=x;c=0;}//5____ void~BC(){}//6____ int&getRef() {returnthis->b;}//7____ staticvoidstaticFuncSet(intx) { this->b=x;}//8_____ intgetC() {returnc;} //9_____ staticvoidstaticFuncSetS(intx) {s=x;} //10______intgetS() {returnthis->s;}//11______ virtualvoidvfunc(intx) {protectedFunc(x);}//12_______ voidm(intx) {vfunc(x);}//13_____private: voidprivateFunc(constchar*str){cout<<str<<b;}//14______protected: voidprotectedFunc(intx){b=s*x;}};classclassDC:publicBC//15._____{public: intd; DC(){} DC(intx,inty):d(x)//16_____{BC(y);}//17______ ~DC(int*p){deletep;}//18______ virtual~DC(){}//19______ virtualvoidvfunc(inta) {d=a;}//20_______ voidm(constchar*str);};voidDC::m(constchar*str)//21.____{ BC::m(0); //22_____ privateFunc(str);//23____ protectedFunc(0);//24_______}intBC::s=0; //25____intmain(){IObjobj; //26_____ DCdc;//27_____ dc.m(10); //28______ dc.m("abc");//29___ int&r=dc.getRef();//30____ BCbc; bc.privateFunc(“aaa”);//31_____ tectedFunc(1);//32_____ BC::staticFuncSetS(1); //33_____ IObj*pobj=newBC(2); pobj->vfunc(1); //34____BC*pbc=(BC*)pobj; //35_____deletepobj; //36_____ BC*pb=&dc; //37_____ BC::m(2); //38______pb->vfunc(1);//39______ DC*pdc=dynamic_cast<DC*>(pb);//40____}答卷第1页(共3页)成绩题号第二题填空题成绩题号第二题填空题(续)5.1(1分)throw5.2(1分)catch6(1分)std7(3分)值,地址,引用8.1(1分)this->name=name8.2(1分)publicCPerson8.3(1分)CStudent8.4(1分)CStudent(stringname)8.5(1分)virtual~CStudent()8.6(1分)stu1.getscore()>stu2.getscore()8.7(1分)stringCPerson::getname(){returnname;}8.8(1分)voidCStudent::setscore(doublescore){this->score=score;}8.9(1分)CStudent8.10(1分)CStudent::compareScore(students[0],students[i]);小计题号第三题阅读题18分1(2分)D2(2分)BZ~Z~B3.1(2分)姓名wang年龄203.2(2分)姓名wang去年20今年184(2分)ZAa5.1(2分)7,5,3,5.2(2分)85.3(2分)4,2,65.4(2分)DevClienthandleReport:MMXU1.PNV.phsA.cVal.mag.f=100.5A小计上海大学2014~2015学年秋季学期答卷A课程名:面向对象程序设计A课程号:09366046学分:4应试人应试人学号应试人所在院系题号一二三四五六七八九得分题号第一题选择题16分每小题2分1F2A3C4D5C6ACE7D8A小计:题号第二题填空题26分1(3分)封装继承多态2(1分)static3.1(1分)1,23.2(1分)this->a=a;3.3(1分):CA(a)3.4(1分)this->b=b;4.1(1分)voiddecode(constchar*str,constchar*key,char*tex);4.2(1分)不返回,str:待解码的字符串,key:密钥,tex:解码后的文本注:教师应使用计算机处理试题的文字、公式、图表等;学生应使用水笔或圆珠笔答题。答卷第2页(共3页)小计:五.程序设计小计:五.程序设计20分(1题8分,2题7分,课外题5分)1.第四题改错题20分每小题0.5分题号题号题号题号题号1√2X3X4√5X6X7√8X9√10√11√12√13√14√15√16√17X18X19√20√21√22√23X24√25√26X27√28X29√30√31X32X33√34√35√36√37√38X39√40√小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭暖气安装合同范本
- 农村房屋山林出售协议书
- 带动群众发展合同范本
- 公司收益离婚分割协议书
- 学生自愿待考安全协议书
- 无责方责任协议书
- 吃水管维修协议书
- 福建变压器租赁协议书
- 搏击馆交款协议书
- 西红柿购买股份协议书
- 2025年国际安全与反恐研究职业资格考试试题及答案
- 2025年下半年黔东南州能源投资限公司招聘易考易错模拟试题(共500题)试卷后附参考答案
- GB/T 45551-2025蜜蜂生产性能测定技术规范
- 荔枝采摘合同协议书
- 太湖苏州辖区生态清淤一期工程环境影响报告书
- 精神分裂症患者个案护理查房
- 2025届江苏省苏州市高考冲刺押题(最后一卷)英语试卷含解析
- 中国共产主义青年团纪律处分条例试行解读学习
- 三方水泥合同协议
- 国家能源集团陆上风电项目通 用造价指标(2024年)
- 国家开放大学《课程与教学论》形考任务1-4参考答案
评论
0/150
提交评论