return0;
}
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.设计一个类Rect,要求如下:
(1)该类中的私有数据成员length,width存放它的长和宽,并且设置它们的默认值是0。
(2)通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围之内。
(3)实现求周长函数GetPerimeter()。
2.定义一个二维座标类Vector2d,二个数据成员为double型x,y为private属性。
定义代二个参数的构造函数和一个Show()函数用以输出x,y的值,另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员x和y对应相加。
这些成员函数的属性均为public.请用C++编写此程序,并编写测试程序进行测试。
C++面向对象程序设计模拟试题六参考答案
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。
请将其代码填写在题后的括号内。
错选,多选或未选均无分。
1.D)2.D)3.A)4.C)5.D)
6.B)7.D)8.A)9.A)10.A).
二、填空题(本大题共5小题,每小题2分,共10分)不写解题过程,将正确的答案写在每小题的空格内,错填或不填均无分
1.参考答案:
对象
2.参考答案:
10
3.参考答案:
模板函数
4.参考答案:
引用
5.参考答案:
operator<<
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.参考答案:
A():
5
B():
0
A():
6
B():
7
2.参考答案:
x=1,y=68
3.参考答案:
15
4.参考答案:
1:
n=10,2:
n=20
5.参考答案:
5,6,7
6.参考答案:
2
四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.参考答案:
[1]intA:
:
2.参考答案:
[2]virtualvoid
3.参考答案:
[3]Base:
:
4.参考答案:
[4]operatorint
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.参考程序:
#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.参考程序:
#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;
}