};
intmain()
{
Complexa(2,9),b(1,1),c;
c=a-b;
cout<<"a=";a.Show();
cout<<"b=";b.Show();
cout<<"c=";c.Show();
return0;
}
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.试使用函数模板实现求一个数组各元素的积,要求编写测试程序。
函数模板声明如下:
template
TypeMul(Typea[],intn);//求数组a各元素的积
2.设计一个日期类Date,,要求:
(1)包含年(year)、月(month)和日(day)私有数据成员。
(2)包含构造函数,重载输出运算符“<<”与重载输入运算符“>>”。
要求编写测试程序。
C++面向对象程序设计模拟试题七参考答案
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.B)2.C)3.A)4.B)5.D)
6.C)7.D)8.A)9.B)10.C)
二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.参考答案:
virtualvoidShow()const=0;
2.参考答案:
2
3.参考答案:
public或公有
4.参考答案:
类
5.参考答案:
class
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.参考答案:
16,16
2.参考答案:
A
B
~B
~A
3.参考答案:
9,1
4.参考答案:
10518
5.参考答案:
A:
:
Show()
B:
:
Show()
6.参考答案:
5
18
四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.参考答案:
[1]operator--()
2.参考答案:
[2]operatorint()const或operatorint()
3.参考答案:
[3]obj.A:
:
4.参考答案:
[4]operator-
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.参考程序:
#include
usingnamespacestd;
template
TypeMul(Typea[],intn)//求数组a各元素的积
{
Typet=1;
for(inti=0;it*=a[i];
returnt;
}
intmain()
{
inta[]={1,2,3,4,5,6,7,8,9};
cout<return0;
}
2.参考程序:
#include
usingnamespacestd;
classDate
{
private:
intyear;
intmonth;
intday;
public:
Date(inty=2010,intm=1,intd=1):
year(y),month(m),day(d){}
voidSetYear(inty){year=y;}
voidSetMonth(intm){month=m;}
voidSetDay(intd){day=d;}
intGetYear()const{returnyear;}
intGetMonth()const{returnmonth;}
intGetDay()const{returnday;}
};
istream&operator>>(istream&in,Date&dt)
{
inty,m,d;
cout<<"输入年:
";
in>>y;
cout<<"输入月:
";
in>>m;
cout<<"输入日:
";
in>>d;
dt.SetYear(y);
dt.SetMonth(m);
dt.SetDay(d);
returnin;
}
ostream&operator<<(ostream&out,constDate&dt)
{
cout<
returnout;
}
intmain()
{
Dated;
cin>>d;
cout<return0;
}