四川大学C++面向对象程序的设计模拟试题7Word格式文档下载.docx
- 文档编号:17704113
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:13
- 大小:18.87KB
四川大学C++面向对象程序的设计模拟试题7Word格式文档下载.docx
《四川大学C++面向对象程序的设计模拟试题7Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《四川大学C++面向对象程序的设计模拟试题7Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
C)~Test(int);
D)Test(int);
8.在下面4个关键字中,用于说明虚基类的是()。
A)virtualB)public
C)protectedD)private
9.在C++中,用于实现编译时多态性的是()。
A)友元函数B)重载函数
C)静态成员函数D)虚函数
10.下列关于C++函数的说明中,正确的是()。
A)内置函数就是定义在另一个函数体内部的函数
B)函数体的最后一条语句必须是return语句
C)C++标准要求在调用一个函数之前,如果没定义函数,则必须先声明其原型
D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.一个函数名为Show,返回值类型为void,没有参数的纯虚常成员函数可以声明为()。
2.若将一个二元运算符重载为类的友员函数,其形参个数应该是()个。
3.采用struct定义的类中数据成员和成员函数的默认访问权限是()。
4.在面向对象方法中,()描述的是具有相同属性与操作的一组对象。
5.模板类型形参表使用的关键字为()。
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.阅读下面程序,写出输出结果。
#include<
iostream>
usingnamespacestd;
classTest
{
private:
intn;
public:
Test(inti=16){n=i;
}
intGet(){returnn;
}
intGet()const{returnn-2;
};
intmain()
Testa;
constTestb(18);
cout<
<
a.Get()<
"
"
<
b.Get()<
endl;
return0;
}
上面程序的输出结果为:
2.阅读下面程序,写出输出结果。
classA
A(){cout<
A"
~A(){cout<
~A"
classB:
A
B(){cout<
B"
~B(){cout<
~B"
intmain()
Bobj;
3.阅读下面程序,写出输出结果。
intf(inta){returna*a+8;
}
template<
classT>
Tf(constT&
a){returna*a;
intmain()
f
(1)<
f(1.0)<
4.阅读下面程序,写出输出结果。
namespacens
{
intx=18;
intx=5;
intx=10;
x<
:
:
x<
ns:
5.阅读下面程序,写出输出结果。
virtualvoidShow()const{cout<
A:
Show()"
publicA
voidShow()const{cout<
B:
voidRefers(constA&
obj)
obj.Show();
Aobj1;
Bobj2;
Refers(obj1);
Refers(obj2);
6.阅读下面程序,写出输出结果。
protected:
inta;
A(intx):
a(x){}
a<
publicA
intb;
B(intx,inty):
A(x),b(y){}
b<
intmain()
Bobj(18,5);
obj.A:
Show();
四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.将如下程序补充完整。
classInteger
Integer(intn):
n(n){}
Integer&
[1]{--n;
return*this;
}//重载前缀--运算符
n<
intmain()
Integeri(168);
--i;
i.Show();
2.将如下程序补充完整。
A(intm=0):
a(m){}
[2]//类型转换函数,A类对象转转成int型量
{returna;
intmain()
Aa=8.14;
3.将如下程序补充完整。
intm;
A(inta):
m(a){}
m<
B(inta,intb):
A(a){n=b;
Bobj(158,98);
[2]Show();
//调用基类的Show()
4.将如下程序补充完整。
classComplex
doublerealPart;
doubleimagePart;
Complex(doublereal=0,doubleimage=0):
realPart(real),imagePart(image){}
Complex[3](constComplex&
a)const//重载减法运算符+
{returnComplex(realPart-a.realPart,imagePart-a.imagePart);
realPart<
+"
imagePart<
i"
Complexa(2,9),b(1,1),c;
c=a-b;
a="
;
a.Show();
b="
b.Show();
c="
c.Show();
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.试使用函数模板实现求一个数组各元素的积,要求编写测试程序。
函数模板声明如下:
classType>
TypeMul(Typea[],intn);
//求数组a各元素的积
2.设计一个日期类Date,,要求:
(1)包含年(year)、月(month)和日(day)私有数据成员。
(2)包含构造函数,重载输出运算符“<
”与重载输入运算符“>
>
”。
要求编写测试程序。
C++面向对象程序设计模拟试题七参考答案
1.B)2.C)3.A)4.B)5.D)
6.C)7.D)8.A)9.B)10.C)
1.参考答案:
virtualvoidShow()const=0;
2.参考答案:
2
3.参考答案:
public或公有
4.参考答案:
类
5.参考答案:
class
16,16
A
B
~B
~A
9,1
10518
Show()
6.参考答案:
5
18
[1]operator--()
[2]operatorint()const或operatorint()
[3]obj.A:
[4]operator-
1.参考程序:
TypeMul(Typea[],intn)//求数组a各元素的积
Typet=1;
for(inti=0;
i<
n;
i++)
t*=a[i];
returnt;
inta[]={1,2,3,4,5,6,7,8,9};
Mul(a,9)<
2.参考程序:
classDate
intyear;
intmonth;
intday;
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;
输入年:
"
in>
y;
输入月:
m;
输入日:
d;
dt.SetYear(y);
dt.SetMonth(m);
dt.SetDay(d);
returnin;
ostream&
operator<
(ostream&
out,constDate&
dt)
dt.GetYear()<
年"
dt.GetMonth()<
月"
dt.GetDay()<
日"
returnout;
Dated;
cin>
d<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川大学 C+ 面向 对象 程序 设计 模拟 试题