return0;//20
}//21
六、编程题(本大题共2小题,每小题10分,共20分)
1.设计一个类DateInfo,要求其满足下述要求:
(1)要求有一个无参的构造函数,其初始的年、月、日分别为:
2010,6,8。
(2)要求有一个带参数的构造函数,其参数分别对应年、月、日。
(3)要求用一个成员函数实现日期的设置。
(4)要求用一个成员函数实现输出日期。
要求用一个成员函数实现日期的获取。
2.定义一个复数类Complex,二个数据成员为double型r,i为private属性。
定义代二个参数的构造函数和一个Show()函数用以输出r,i的值,另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员r和i对应相加。
这些成员函数的属性均为public.请用C++编写此程序,并编写测试程序进行测试。
C++面向对象程序设计模拟试题五参考答案
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。
请将其代码填写在题后的括号内。
错选,多选或未选均无分。
1.A)2.B)3.C)4.C)5.A)
6.D)7.C)8.B)9.A)10.C)
11.D)12.D)13.B)14.C)15.A)
二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“√”错误的划上”×”。
1.参考答案:
“√”
2.参考答案:
“×”
3.参考答案:
“×”
4.参考答案:
“×”
5.参考答案:
“×”
三、填空题(本大题共5小题,每小题2分,共10分)不写解题过程,将正确的答案写在每小题的空格内,错填或不填均无分
1.参考答案:
oprator-
2.参考答案:
继承
3.参考答案:
pb=&b
4.参考答案:
重载
5.参考答案:
delete
四、程序分析题(本大题共8小题,每小题3分,共24分)给出下面各程序的输出结果。
1.输出结果为:
DestructorB!
7
DestructorA!
6
DestructorB!
0
DestructorA!
5
2.输出结果为:
x=5,y=12
3.输出结果为:
7
4.输出结果为:
1
2
5.输出结果为:
d=88i=88
6.程序的输出结果为:
0
1
2
3
4
7.程序的输出结果为:
constructor,i=0,destructor
8.程序的输出结果为:
23
五、程序改错题(本大题共3小题,共3处错,每改一错2分,共6分)指出下面程序中错误,说明错误原因,并加以改正。
1.参考答案:
第7行应从右自左默认,应改为
A(inti,intj=0):
mi(i),mj(j){}
或改为
A(inti=0,intj=0):
mi(i),mj(j){}
2.参考答案:
第7行,改为A(inta):
m_a(a){}
3.参考答案:
第9行,析构函数无返回值类型(void类型也不行),应改为~CTest(){…}
六、编程题(本大题共2小题,每小题10分,共20分)
1.参考程序:
#include
usingnamespacestd;
classDateInfo
{
private:
intyear,month,day;
public:
DateInfo():
year(2010),month(6),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;
}
2.参考程序:
#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;
}