练习题参考答案.doc

上传人:pu****.1 文档编号:560211097 上传时间:2022-11-28 格式:DOC 页数:5 大小:42.01KB
返回 下载 相关 举报
练习题参考答案.doc_第1页
第1页 / 共5页
练习题参考答案.doc_第2页
第2页 / 共5页
练习题参考答案.doc_第3页
第3页 / 共5页
练习题参考答案.doc_第4页
第4页 / 共5页
练习题参考答案.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《练习题参考答案.doc》由会员分享,可在线阅读,更多相关《练习题参考答案.doc(5页珍藏版)》请在金锄头文库上搜索。

1、单项选择题(每题2分,共10道,共20分)1D 2D 3B 4A 5B6D 7D 8A 9A 10C填空题(每空1分,共10个空,共10分)1public、private、protected (顺序任意)2静态3inline 或内联4友元函数5函数模板、类模板(顺序可以颠倒)6纯虚函数7throw简答题(共3道小题,共10分)1答:(1) 在public派生下,基类中的public成员在派生类中是公有的,基类中的private 成员在派生类中是不可直接访问的,基类中的protected成员在派生类中是protected的。(2分)(2)在private派生下,基类中的public成员在派生类中

2、是私有的,基类中的private 成员在派生类中是不可直接访问的,基类中的protected成员在派生类中是私有的。(1分)(3) 在protected派生下,基类中的public成员在派生类中是protected的,基类中的private 成员在派生类中是不可直接访问的,基类中的protected成员在派生类中是protected的。(1分)2答:(1)生存期是指对象从建立到销毁的期间。(1分)(2)C+中包括静态生存期(1分)和动态生存期(1分)3答:调用顺序如下:按照继承时声明顺序调用基类的构造函数(1分)如果有内嵌对象成员,按照声明顺序构造这些对象成员(1分)调用自己的构造函数体(1分

3、)程序分析题(每小题6分,共5道小题,共30分)解:n=10,k=3 (2分)n=20,k=3 (2分)n=30,k=3 (2分)该类定义有如下3处错误:(1)构造函数说明错误,应将Sample(int a=0,b=1)改为Sample(int a=0,int b=1) (2分)(2)构造函数在说明时已经给出默认值,在定义时就不用再给出默认值了。(2分)(3)在类中说明disp时没有给出数据类型,在定义时也要一致。(2分)解:Sample是一个类模板(2分),产生一个模板类 Sample ,并建立它的三个对象,调用重载运算符“+”实现s1与s2的加法运算,将结果赋给s3。(2分)所以输出为:n

4、=30。(2分)运行结果为:A Constructor2 (2分)B Constructor2 (2分)x1=12 (1分)x2=2 (1分)结果如下:B fun1 (1分)A fun2 (1分)A fun3 (2分)A fun4 (2分)编程题(共3道小题,共20分)1采分点如下:(1)类的总体框架设计 (2分)(2)类的成员函数的编写 (2分)(3)主函数的编写 (2分)R#include const float unleadPrice=17.;const float leadPrice=16.;class petriod private: float unlead,lead,total;

5、 public: petriod(float ul,float l) unlead=ul; lead=l; total=unlead*unleadPrice+lead*leadPrice; float getTotal() return total; ;int main() petriod p(100,100);coutp.getTotal();return 0;2采分点如下:(1)建立Rectangle类 (2分)(2)建立长方体类 (3分)(3)主函数 (2分)#include class Rectangle private: float length,width; public: Rec

6、tangle(float l,float w) length=l; width=w; float area() return length*width; ;class Volume:public Rectangle private: float heigh; public: Volume(float l,float w,float h):Rectangle(l,w)heigh =h; float volume()return area()*heigh;int main() Rectangle r(2,3);Volume v(2,3,5);coutr.area();coutv.volume();

7、return 0;3采分点如下:(1)类的编写 (2分)(2)建立对象 (1分)(3)打开文件,写入文件 (2分)(5)关闭并读出文件内容 (2分)#include #include using namespace std;class stuprivate:int no;char name10;int grade;int classNo;public:stu()void setNo(int n)no=n;void setName(char *na)strcpy(name,na);void setGrade(int gr)grade=gr;void setClass(int cl)classNo

8、=cl; int GetNo()return no;char *GetName()return name;int GetGrade()return grade;int GetClass()return classNo;int main() stu S2; int sNo; char sName10; int sGrade; int sClassNo; for(int i=0;isNo; Si.setNo(sNo); cinsName; Si.setName(sName); cinsGrade; Si.setGrade(sGrade); cinsClassNo; Si.setClass(sClassNo); ifstream ifile(data.txt,ios_base:in); ofstream ofile(data.txt,ios_base:out); for(i=0;i2;i+) ofileSi.GetNo()Si.GetName()Si.GetGrade()Si.GetClass()endl;ofile.close(); char line101; for(i=0;i2;i+) ifile.getline(line,100); coutlineendl; ifile.close();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号