收藏 分销(赏)

练习题参考答案.doc

上传人:xrp****65 文档编号:7693509 上传时间:2025-01-12 格式:DOC 页数:5 大小:42KB 下载积分:10 金币
下载 相关 举报
练习题参考答案.doc_第1页
第1页 / 共5页
练习题参考答案.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
单项选择题(每题2分,共10道,共20分) 1.D 2.D 3.B 4.A 5.B 6.D 7.D 8.A 9.A 10.C 填空题(每空1分,共10个空,共10分) 1.public、private、protected (顺序任意) 2.静态 3.inline 或内联 4.友元函数 5.函数模板、类模板(顺序可以颠倒) 6.纯虚函数 7.throw 简答题(共3道小题,共10分) 1.答: (1) 在public派生下,基类中的public成员在派生类中是公有的,基类中的private 成员在派生类中是不可直接访问的,基类中的protected成员在派生类中是protected的。(2分) (2)在private派生下,基类中的public成员在派生类中是私有的,基类中的private 成员在派生类中是不可直接访问的,基类中的protected成员在派生类中是私有的。(1分) (3) 在protected派生下,基类中的public成员在派生类中是protected的,基类中的private 成员在派生类中是不可直接访问的,基类中的protected成员在派生类中是protected的。(1分) 2.答: (1)生存期是指对象从建立到销毁的期间。(1分) (2)C++中包括静态生存期(1分)和动态生存期(1分) 3.答: 调用顺序如下: 按照继承时声明顺序调用基类的构造函数(1分) 如果有内嵌对象成员,按照声明顺序构造这些对象成员(1分) 调用自己的构造函数体(1分) 程序分析题(每小题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 <int>,并建立它的三个对象,调用重载运算符“+”实现s1与s2的加法运算,将结果赋给s3。(2分)所以输出为:n=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 <iostream.h> const float unleadPrice=17.; const float leadPrice=16.; class petriod { private: float unlead,lead,total; 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); cout<<p.getTotal(); return 0; } 2.采分点如下: (1)建立Rectangle类 (2分) (2)建立长方体类 (3分) (3)主函数 (2分) #include <iostream.h> class Rectangle { private: float length,width; public: Rectangle(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); cout<<r.area(); cout<<v.volume(); return 0; } 3.采分点如下: (1)类的编写 (2分) (2)建立对象 (1分) (3)打开文件,写入文件 (2分) (5)关闭并读出文件内容 (2分) #include <iostream> #include <fstream> using namespace std; class stu { private: int no; char name[10]; 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=cl; } int GetNo(){return no;} char *GetName(){return name;} int GetGrade(){return grade;} int GetClass(){return classNo;} }; int main() { stu S[2]; int sNo; char sName[10]; int sGrade; int sClassNo; for(int i=0;i<2;i++) { cin>>sNo; S[i].setNo(sNo); cin>>sName; S[i].setName(sName); cin>>sGrade; S[i].setGrade(sGrade); cin>>sClassNo; S[i].setClass(sClassNo); } ifstream ifile("data.txt",ios_base::in); ofstream ofile("data.txt",ios_base::out); for(i=0;i<2;i++) { ofile<<S[i].GetNo()<<S[i].GetName()<<S[i].GetGrade()<<S[i].GetClass()<<endl; } ofile.close(); char line[101]; for(i=0;i<2;i++) { ifile.getline(line,100); cout<<line<<endl; } ifile.close(); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服