四川大学C++面向对象程序设计模拟试题1Word下载.docx
- 文档编号:21905731
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:18.38KB
四川大学C++面向对象程序设计模拟试题1Word下载.docx
《四川大学C++面向对象程序设计模拟试题1Word下载.docx》由会员分享,可在线阅读,更多相关《四川大学C++面向对象程序设计模拟试题1Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
A)不需要使用虚函数B)必须使用虚函数
C)必须使用privateD)必须使用public
10.类类型转换函数(A)。
A)不能带有参数B)只能带一个参数
C)只能带2个参数D)只能带3个参数
二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.在用C++进行程序设计时,最好用(new)代替malloc。
2.函数模板中紧随template之后尖括号内的类型参数都要寇以保留字(class或typename)。
3.编译时多态性可以用(重载)函数实现。
4.拷贝构造函数用它所在类的(对象)作为参数。
5.用关键字static修饰的类的成员称为(静态)成员。
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.阅读下面程序,写出输出结果。
#include<
iostream>
usingnamespacestd;
classArray
{
public:
Array(inta[],intiSize):
elem(a),size(iSize)
{
}
intGetSize()
returnsize;
int&
operator[](inti)
returnelem[i-1];
private:
int*elem;
intsize;
};
intmain()
ints[]={3,7,2,1,5};
Arrayar(s,5);
ar[1]=9;
for(inti=1;
i<
=5;
i++)
cout<
<
ar[i]<
"
;
cout<
endl;
return0;
}
上面程序的输出结果为:
97215
2.阅读下面程序,写出输出结果。
template<
classType>
voidPrint(Typea[],intn)
for(inti=0;
n;
a[i]<
inta[]={5,6,8};
doubleb[]={,};
Print(a,sizeof(a)/sizeof(int));
Print(b,2);
568
3.阅读下面程序,写出输出结果。
classTest
Test(intn):
num(n)
count++;
~Test()
voidPrint()const;
staticintGetCount()
returncount;
intnum;
staticintcount;
intTest:
count=0;
voidTest:
Print()const
this->
num<
<
count<
TestoTest1(6);
();
TestoTest2(8);
Test:
GetCount();
61822
4.阅读下面程序,写出输出结果。
Test(inta=0,intb=0,intc=0):
x(a),y(b),z(c){}
voidPrint()
x<
y<
voidPrint()const
z<
intx,y;
constintz;
Testobj1;
Testobj2(1,6,8);
constTestobj3(6,0,18);
001618
5.阅读下面程序,写出输出结果。
classMyClass
staticintn;
MyClass(){n+=1;
}
~MyClass(){n-=1;
staticintGetNum(){returnn;
intMyClass:
n=0;
intmain()
MyClass:
GetNum()<
MyClassobj;
MyClass*p=newMyClass;
deletep;
end"
0121end
6.阅读下面程序,写出输出结果。
classA
inta;
A(){cout<
无参构造函数"
A(inta){cout<
含参构造函数a="
a<
}
A(constA&
copy):
a{cout<
复制构造函数"
~A(){cout<
析构函数"
Aobj1,obj2
(1),obj3(obj2);
无参构造函数含参构造函数a=1复制构造函数析构函数析构函数析构函数
四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.将如下程序补充完整。
Test(intnum=0){[1]this->
num或Integer:
num=num;
}//初始化数据成员num为形参num
intGetNum()const{returnnum;
intmain()
Testobj;
()<
2.将如下程序补充完整。
A(intm):
a(m){}
voidShow()const{cout<
classB:
A
intb;
B(intm,intn=0):
[2]A(m),b(n){}//初始化数据成员b的值为n
voidShow()const
{
A:
Show();
b<
Bobj(8);
3.下列程序的输出结果为:
1
试将程序补充完整。
classPoint
Point(intm=0,intn=0):
x(m),y(n){count++;
~Point(){count--;
}
intGetX()const{returnx;
}
intGetY()const{returny;
staticvoidShowCount(){cout<
count<
[3]intPoint:
//静态数据成员的初始化为0
intmain()
Point:
ShowCount();
Point*p=newPoint;
4.将如下程序补充完整。
classComplex
doublerealPart;
doubleimagePart;
Complex(doublereal=0,doubleimage=0):
realPart(real),imagePart(image){}
doubleGetRealPart()const{returnrealPart;
doubleGetImagePart()const{returnimagePart;
[4]Complexoperator+(constComplex&
a)const//重载加法运算符+
Complexb;
=this->
realPart+;
imagePart+;
returnb;
intmain()
Complexa(1,2),b(2,6),c;
c=a+b;
a="
+"
i"
b="
c="
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。
函数模板声明如下:
TypeAbs(Typea);
1.参考程序:
TypeAbs(Typea)
if(a>
=0)returna;
elsereturn-a;
Abs(5)<
Abs(-5)<
Abs<
2.定义一个复数类Complex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Show(),重载“+”运算符(用成员函数实现),并编写测试程序进行测试。
参考程序:
Complex(doubler,doublei=0)
real=r;
image=i;
voidShow()
real;
if(image>
0)cout<
image<
elseif(image<
-"
-image<
elsecout<
Complexoperator+(constComplex&
obj)
Complextemp(real+,image+;
returntemp;
doublereal,image;
Complexz1(2,6),z2(3,8),z3(0);
z3=z1+z2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川大学 C+ 面向 对象 程序设计 模拟 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)