四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx

上传人:b****5 文档编号:21002616 上传时间:2023-01-26 格式:DOCX 页数:14 大小:18.16KB
下载 相关 举报
四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx_第1页
第1页 / 共14页
四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx_第2页
第2页 / 共14页
四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx_第3页
第3页 / 共14页
四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx_第4页
第4页 / 共14页
四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx

《四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx》由会员分享,可在线阅读,更多相关《四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

四川大学C++面向对象程序的设计模拟试题1Word文件下载.docx

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[]={6.8,9.6};

Print(a,sizeof(a)/sizeof(int));

Print(b,2);

5686.89.6

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);

oTest1.Print();

TestoTest2(8);

oTest2.Print();

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;

obj1.Print();

Testobj2(1,6,8);

obj2.Print();

constTestobj3(6,0,18);

obj3.Print();

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(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;

obj.GetNum()<

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);

obj.Show();

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;

b.realPart=this->

realPart+a.realPart;

b.imagePart=this->

imagePart+a.imagePart;

returnb;

intmain()

Complexa(1,2),b(2,6),c;

c=a+b;

a="

a.GetRealPart()<

+"

a.GetImagePart()<

i"

b="

b.GetRealPart()<

b.GetImagePart()<

c="

c.GetRealPart()<

c.GetImagePart()<

五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)

1.编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。

函数模板声明如下:

TypeAbs(Typea);

1.参考程序:

TypeAbs(Typea)

if(a>

=0)returna;

elsereturn-a;

Abs(5)<

Abs(-5)<

Abs(2.5)<

Abs(-2.5)<

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+obj.real,image+obj.image);

returntemp;

doublereal,image;

Complexz1(2,6),z2(3,8),z3(0);

z1.Show();

z2.Show();

z3.Show();

z3=z1+z2;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1