C++重修考试大题填空选择判断没给出含答案.docx
- 文档编号:6083640
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:13
- 大小:18.68KB
C++重修考试大题填空选择判断没给出含答案.docx
《C++重修考试大题填空选择判断没给出含答案.docx》由会员分享,可在线阅读,更多相关《C++重修考试大题填空选择判断没给出含答案.docx(13页珍藏版)》请在冰豆网上搜索。
C++重修考试大题填空选择判断没给出含答案
1.设计一个类Rect,要求如下:
(1)该类中的私有数据成员length,width存放它的长和宽,并且设置它们的默认值是0。
(2)通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围之内。
(3)实现求周长函数GetPerimeter()。
#include
usingnamespacestd;
classRect
{
private:
doublelength,width;
public:
Rect(doublel=0,doublew=0):
length(l),width(w){}
voidSet(doublel,doublew)
{
if(length<=0||length>=50||width<=0||width>=50)
throw"数据不在指定范围(0,50)!
";//抛出异常
length=l;
width=w;
}
doubleGetPerimeter(){return2*(length+width);}
};
intmain()
{
try//检查异常
{
Rectobj(1,8);
cout<<"周长:
"< } catch(char*str)//捕捉异常 {//处理异常 cout<<"异常信息: "< } return0; } 2.定义一个二维座标类Vector2d,二个数据成员为double型x,y为private属性。 定义代二个参数的构造函数和一个Show()函数用以输出x,y的值,另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员x和y对应相加。 这些成员函数的属性均为public.请用C++编写此程序,并编写测试程序进行测试 #include usingnamespacestd; classVector2d { doublex,y; public: Vector2d(doublea,doubleb): x(a),y(b){} voidShow(){cout< Vector2doperator+(Vector2d&obj); }; Vector2dVector2d: : operator+(Vector2d&obj) {returnVector2d(x+obj.x,y+obj.y);} intmain() { Vector2dd1(3.5,4.5),d2(2.5,5.5),d3(0.0,0.0); d3=d1+d2; d3.Show(); return0; } 3.设计一个立方体类Box,它能计算并输出立方体的体积和表面积。 #include usingnamespacestd; classBox { private: doublelength;//立方体边长 doublevolume;//体积 doublearea;//表面积 public: /* *构造函数 */ Box(doublel) { length=l; volume=0.0; area=0.0; } /* *计算体积 */ doublegetVolume() { returnlength*length*length; } /* *计算表面积 */ doublegetArea() { returnlength*length*6; } /* *输出立方体体积和表面积 */ voidshow() { volume=getVolume(); area=getArea(); cout<<"立方体的体积: "< "< } }; /* *主函数 */ intmain() { intlength=0; cout<<"请输入立方体的边长: "; cin>>length; Boxbox(length); box.show(); getchar(); return0; } 4.编程实现抽象类Employee,派生类Manger和HourlyWorker,Employee有数据成员姓名name和工号ID,Manger有数据成员sal,代表经理的月工资,HourlyWorker有wage和hours,分别代表钟点工的每小时的工资数和月工作时数,定义的所有类中必须包含构造函数、析构函数、修改和获取所有数据成员的成员函数,以及虚函数来计算职员的工资、输出职员的姓名name和工号ID。 #include #include usingnamespacestd; classEmployee { public: Employee(){}; virtualvoidgongzi(){cout<<"no";} voidxianshi(){cout<<"no";} stringname; stringid; ~Employee(){}; }; classManger: publicEmployee { public: Manger(strings1,strings2){name=s1;id=s2;} voidgongzi() { cout< "< cout< } voidxianshi() { cout<<"经理的姓名为: "< cout<<"经理的ID为: "< } voidset() { cout<<"请修改经理的月工资为: "; cin>>sal; cout< } ~Manger(){}; private: intsal; }; classHourlyWorker: publicEmployee { public: HourlyWorker(strings1,strings2) { name=s1;id=s2; } voidgongzi() { cout< "< } voidxianshi() { cout<<"钟点工的姓名为: "< cout<<"钟点工的ID为: "< } voidset() { cout<<"请输入钟点工每小时的工资数: "; cin>>wage; cout< cout<<"请输入钟点工月工作时数: "; cin>>hours; cout< } ~HourlyWorker(){}; private: intwage; inthours; }; voidfun(Employee*p) { p->gongzi(); } voidmain() { Mangerzhangye("zhangye","200913030135"); HourlyWorkerzjy("zhangjunyu","200913030104"); zhangye.xianshi(); zhangye.set(); fun(&zhangye); zjy.xianshi(); zjy.set(); fun(&zjy); } 5.编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。 函数模板声明如下: template TypeAbs(TypetVar) #include usingnamespacestd; template TypeAbs(TypetVar) { if(tVar>=0)returntVar; elsereturn-tVar; } intmain() { cout< cout< cout< cout< return0; } 6.定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Show(),重载“+”运算符(用成员函数实现),并编写测试程序进行测试。 #include usingnamespacestd; classCComplex { public: CComplex(doubledReal,doubledImage=0) { m_dReal=dReal; m_dImage=dImage; } voidShow() { cout< if(m_dImage>0) { cout<<"+"< } elseif(m_dImage<0) { cout<<"-"<<-m_dImage<<"i"< } } CComplexoperator+(constCComplex&obj) { CComplexobjTemp(m_dReal+obj.m_dReal,m_dImage+obj.m_dImage); returnobjTemp; } private: doublem_dReal,m_dImage; }; intmain() { CComplexobj1(2,6),obj2(3,8),obj3(0); obj1.Show(); obj2.Show(); obj3.Show(); obj3=obj1+obj2; obj3.Show(); return0; } 7.(1)下面程序的打印结果是_1251121_ . #incude intf(int); intmain() { inti; for(i=0;i<5;i++) cout< return0; } intf(inti) { staticintk=1; for(;i>0;i--) k+=i; returnk; } (2)在用class定义一个类时,数据成员和成员函数的默认访问权限是_private或私有_. (3)含有纯虚函数的类称为___抽象类__. (4)已知intDBL(intn){returnn+n;}和longDBL(longn){returnn +n;} 是一个函数模板的两个实例,则该函数模板的定义是__templateTDBL(Tn){returnn+n;}__. (5)在下面程序的横线处填上适当的语句,使该程序执行结果为10. #include classMyClass { public: MyClass(inta){x=a;} _intGetNum(){returnx;}或intGetNum()const{returnx;}___//取x值 private intx; }; intmain() { MyClassmy(10); cout< return0; } 8.定义一个抽象类CShape,它有一个纯虚函数GetLength();派生出四边型类CSquare和圆类CCircle,在派生类中重载函数GetLength(),用于求图形的周长,编写测试程序进行测试。 #include usingnamespacestd; classCShape { public: virtualdoubleGetLength()const=0; }; classCSquare: publicCShape { public: CSquare(doubledWidth,doubledHeight) { m_dWidth=dWidth; m_dHeight=dHeight; } doubleGetLength()const { return2*(m_dWidth+m_dHeight); } private: doublem_dWidth,m_dHeight; }; classCCircle: publicCShape { public: CCircle(doubledRadius) { m_dRadius=dRadius; } doubleGetLength()const { return3.1415926*m_dRadius*m_dRadius; } private: doublem_dRadius; }; intmain(void) { CSquareoSquare(2,3); cout< CCircleoCircle(10); cout< return0; } 9.设计一个类DateInfo,要求其满足下述要求: (1)要求有一个无参的构造函数,其初始的年、月、日分别为: 2010,8,8。 (2)要求有一个带参数的构造函数,其参数分别对应年、月、日。 (3)要求用一个成员函数实现日期的设置。 (4)要求用一个成员函数实现输出日期。 请用C++编写此程序,并编写测试程序进行测试。 #include usingnamespacestd; classDateInfo { private: intyear,month,day; public: DateInfo(): year(2010),month(8),day(8){} DateInfo(inty,intm,intd): year(y),month(m),day(d){} voidSet(inty,intm,intd) { year=y; month=m; day=d; } voidShow(){cout< }; intmain() { DateInfod1,d2(1988,8,18); d1.Show(); d2.Show(); d2.Set(1999,9,19); d2.Show(); return0; } 10.定义一个复数类Complex,二个数据成员为double型r,i为private属性。 定义带二个参数的构造函数和一个Show()函数用以输出r,i的值,另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员r和i对应相加。 这些成员函数的属性均为public.请用C++编写此程序,并编写测试程序进行测试。 #include usingnamespacestd; classComplex { private: doubler,i; public: Complex(doublea,doubleb): r(a),i(b){} voidShow(){cout< Complexoperator+(Complexobj) {returnComplex(r+obj.r,i+obj.i);} }; intmain() { Complexc1(3.5,4.5),c2(2.5,5.5),c3(0.0,0.0); c3=c1+c2; c3.Show(); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 重修 考试 填空 选择 判断 给出 答案