}
return0;
}
习题五
一、填空题
1.数据成员、成员函数
2.private、protected、public
3.private、public
4.自动、创建并初始化对象
5.构造函数
6.析构函数
7.友元函数
8.堆对象
9.this、正在被成员函数操作的对象
10.10、10
二、选择题
1.D2.C3.D4.A5.C6.C7.C8.C
9.A10.C11.B12.B13.C14.A15.D
三、程序阅读
1.有四处错误:
(1)inti=0;数据成员在类的定义中不能直接初始化
(2)voidSample();构造函数没有返回值类型;
(3)~Sample(intvalue);析构函数无参数;
(4)析构函数不能重载。
2.有四处错误:
(1)Sample(inta=0,b=1);参数b没有说明类型;
(2)disp();没有给出返回值类型;
(3)void~Sample(inta);析构函数不能有返回值类型,也不能有参数;
(4)Sample:
:
Sample(inta=0,intb=1)默认值重复定义,只需在函数说明中给出即可。
3.有二处错误:
(1)Sample(inta){X=a;}常数据成员只能用初始化列表的形式进行初始化;
(2)a.Print();常对象只能调用常成员函数。
4.无错误,运行结果如下:
Const:
X=10
X=20
5.运行结果:
2,5
10,20
6.运行结果:
2234
7.运行结果:
3
8.运行结果:
E2-C16-
四、编程题
1.程序如下:
#include
usingnamespacestd;
classDate
{
public:
voidSetDate(inty,intm,intd)
{
year=y;
month=m;
day=d;
}
intAddDay()
{
returnday++;
}
voidDisplay()
{
cout<}
private:
intyear,month,day;
};
intmain()
{
Datetoday,tomorrow;
today.SetDate(2010,7,20);
today.AddDay();
tomorrow=today;
tomorrow.Display();
return0;
}
2.程序如下:
#include
usingnamespacestd;
classRectangle
{
public:
Rectangle(doublea=1,doubleb=1)
{
length=a;
width=b;
}
voidSetValue(doublem,doublen)
{
length=m;
width=n;
}
doublePerimeter()
{
return2*(length+width);
}
doubleArea()
{
returnlength*width;
}
private:
doublelength,width;
};
intmain()
{
Rectangler;
r.SetValue(10,20);
cout<cout<return0;
}
3.程序如下:
#include
usingnamespacestd;
classTime
{
public:
Time();
Time(inth,intm);
voidSetTime(inth1,intm1)
{
hour=h1;
minute=m1;
}
friendvoidGetTime12(Time&t);
friendvoidGetTime24(Time&t);
private:
inthour,minute;
};
Time:
:
Time()
{
hour=0;
minute=0;
}
Time:
:
Time(inth,intm)
{
hour=h;
minute=m;
}
voidGetTime12(Time&t)
{
boolpm;
inthours;
if(t.hour>12)
{
hours=t.hour-12;
pm=true;
}
else
{
hours=t.hour;
pm=false;
}
if(pm)
cout<<"Timeis"<"<else
cout<<"Timeis"<"<}
voidGetTime24(Time&t)
{
cout<<"Timeis"<"<}
intmain()
{
Timet1,t2;
t2.SetTime(16,20);
GetTime12(t1);
GetTime24(t1);
GetTime12(t2);
GetTime24(t2);
return0;
}
4.程序如下:
#include
#include
usingnamespacestd;
classStudent
{
public:
Student(){};
voidGetName(stringn);
voidGetGender(charg);
voidGetAge(inta);
voidDisplay()
{
cout<<"Name:
"<cout<<"Gender:
"<cout<<"Age:
"<}
private:
stringname;
chargender;
intage;
};
voidStudent:
:
GetName(stringn)
{
name=n;
}
voidStudent:
:
GetGender(charg)
{
gender=g;
}
voidStudent:
:
GetAge(inta)
{
age=a;
}
intmain()
{
Students;
stringsname;
charsgender;
intsage;
cout<<"Pleaseinputname:
"<cin>>sname;
s.GetName(sname);
cout<<"Pleaseinputgender:
"<cin>>sgender;
s.GetGender(sgender);
cout<<"Pleaseinputage:
"<cin>>sage;
s.GetAge(sage);
s.Display();
return0;
}
5.程序如下:
#include
usingnamespacestd;
classStudent
{
public:
Student()
{
score=0;
}
Student(doubles)
{
score=s;
totalscore+=score;
count++;
}
staticdoubleTotalSum()
{
returntotalscore;
}
staticdoubleAverage()
{
returntotalscore/count;
}
private:
doublescore;
staticdoubletotalscore;
stat