第1题:
使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义私有成员变量year、month、day。分别表示年、月、日,类型为int。请在注释1后添加适当的语句。 (2)完成构造函数,分别给year、month、day赋值,请在注释2后添加适当的语句。 (3)完成重载符号“十=”的定义,请在注释3后添加适当的语句。 (4)完成print打印函数,输出到屏幕和文件的格式相同,请在注释4后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。 程序正常运行,输出的结果为2008年11月813。 试题程序: include(iostream.h) include(fstream) include(iomanip) include<cmath) usingnamespacestd; voidWriteFile(intc) { ofstreamout1; out1.open("3.txt",ios_base::app); out1<<C<<; out1.close; } voidWriteFile(char*str) { ofstreamoutl; out1.open("3.txt",ios_base::app); out1<<str; out1.close; } voidClearFile { ofstreamout1; out1.open("3.txt"); out1.close; } classDate { public: Date(inty,intm,intd) { //********1******** } voidprint; //********2******** { month+=m; inti=month/12: intj=month%12; if(j==0) {year+=(i-1); month=12; } else { year+=i: month=j; } return*this; } private: //********3******** }; voidDate::print { //********4******** WriteFile(year): WriteFile("年"); WriteFile(month); WriteFile("月"); WriteFile(day); WriteFile("日"); } intmain { ClearFile; DateOly_day(2008,8,8); Olyday+=3: Oly_day.print; return0; }
第2题:
使用VC6打开考生文件夹下的工程test19_3,此工程包含一个源程序文件test19_3.cpp,其中定义了用于表示向量的类 vector,但类vector的定义并不完整。请按要求完成下列操作,将类vector的定义补充完整。
(1)补充类vector的构造函数,该函数有参数x和y,它们都是int型的数据,默认值都为0。请使用参数列表的形式分别将类的数据成员a和b分别初始化为参数x和y的值。请在注释“//**1**”之后添加适当的语句。
(2)完成类vector的成员函数input(int x,int y)的定义,将int型的参数x和y分别赋值给数据成员a和b,请在注释“//**2**”之后添加适当的语句。
(3)完成类vector的友元函数friend double Multiply (vector &x,vector &y)的定义,先定义double型的临时变量c,然后将参数对象x和对象y的数据成员a与b分别相乘再相加后赋值给c,最后返回c的值,将请在注释“//**3**”之后添加适当的语句。输出结果如下:
(10,20)
(2, 3)
80
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test19_3.cpp清单如下:
include <iostream.h>
class vector
{
int a;
int b;
public:
//**1**
void input(int x, int y)
{
//**2**
}
void output ()
{
cout<<'('<<a<<','<<b<<")"<<end1;
}
friend double Multiply(vector &x,vector &y);
}
double Multiply (vector &x,vector &y)
{
//**3**
c=x.a*y.a+x.b*y.b;
return c;
}
void main()
{
vector x(10,20),y;
double d;
y.input (2,3);
d=Multiply (x,y);
x. output ( );
y. output ( );
cout<<d<<end1;
}
第3题:
使用VC6打开考生文件夹下的工程MyProj11。此工程包含一个源程序文件 MyMain11.cpp。程序中定义了3个类A、B和C,但类C的定义并不完整。
请按要求完成下列操作,将类的定义补充完成:
①类C是基类A和B公有派生来的。请在注释“//* *1* *”之后添加适当的语句。
②完成构造函数C(int k)定义,采用初始化列表的方式使基类A私有成员a初始化为k-2,基类B的私有成员b初始化为k+2,类C的私有成员c初始化为k。请在注释“//* *2* *”之后添加适当的语句。
③完成类Derived的成员函数disp()的类体外的定义。函数disp()中要分别显式调用基类A、B的disp()函数,然后要输出私有成员c的值。请在注释“//* *3* *”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件MyMain11.cpp清单如下;
//MyMain11.cpp
include <iostream>
using namespace std;
class A
{
private:
int a;
public:
A(int i) { a=i;}
void disp()
{
cout<<a<<" , "
}
};
class B
{
private:
int b;
public:
B(int j){ b=j;}
disp ( )
{
cout<<b<<", ";
}
};
//* * *1* * *
{
private:
int c;
public:
//* * *2* * *
void disp();
};
void c::disp()
{
//* * *3* * *
}
int main ( )
{
C obj(10);
obj.disp();
return 0;
}
第4题:
使用VC6打开考生文件夹下的工程test4_1,此工程包含一个源程序文件test4_1.cpp,但该程序在类的定义中存在问题,请改正类定义中的错误,使程序的输出结果如下:
a=3 b=13
a=5 b=13
注意:请勿修改主函数main中的任何内容。
源程序文件rcst4_1.cpp清单如下:
include<iostream.h>
class T
{
public:
/*********found***+******/
T(int x){a=x; b+=x;)
/+********found**********/
void display(T c)
{ cout<<"a="<<c.a<<"\t"<<"b="<<c.b<<endl;)
private:
const int a;
static int b;
};
/**********found*********/
int b=5;
void main()
{
T A(3),B(5);
T::display(A);
T::display(B);
}
第5题:
使用VC6打开考生文件夹下的工程test17_3,此工程包含一个源程序文件test17_3.cpp,其中定义了用于表示点的类Point和表示内容的类Text以及二者的派生类CircleWithText,但它们的定义并不完整。请按要求完成下列操作,将它们的定义补充完整。
(1)定义类Point的构造函数,请使用参数列表的形式将成员函数x和y分别初始化为参数x1和y1的值。请在注释“//**1**。”之后添加适当的语句。
(2)完成类Text的构造函数Text(char *str)的定义,将char型的str指向的内容赋值给text并且输出str所指向的内容,请在注释“//**2**”之后添加适当的语句。
(3)定义类CircleWithText的构造函数CircleWithText(int cx,int cy,char *msg),int型的cx和cy用于赋值给x和y,char型的指针*msg用于赋值给text,请在注释“//**3**”之后添加适当的语句。
输出结果如下:
Point:3 4
hello
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test17_3.cpp清单如下:
include <iostream.h>
include <string.h>
class Point
{
int x,y;
public:
//**1**
{
cout<<"Point:"<<x<<' '<<y<<'\n';
}
~Point(){}
};
class Text
{
char text[100];
public:
Text(char *str)
{
//**2**
}
~Text () { }
};
class CircleWithText:public Point,public Text
{
public:
//**3**
{}
~CircleWithText() {}
};
void main()
{
CircleWithText cm(3,4,"hello");
}
第6题:
使用VC6打开考生文件夹下的工程MyProj7。此工程包含一个源程序文件MyMain7.cpp。其中定义了类Sample,但类Sample的定义并不完整。
请按要求完成下列操作,将类Sample的定义补充完成:
①定义私有数据成员n,它是int型的数据。请在注释“//* *1**”之后添加适当的语句。
②完成重载构造函数Sample()的定义,使Sample对象的默认值:n=0。请在注释“//* *2* *”之后添加适当的语句。
③完成成员函数add()的类体内的定义,使成员函数返回的Sample对象的值n为两类Sample对象s1和s2的私有成员n的和。请在注释“//* *3* *”之后添加适当的语句。
④完成成员函数disp()的类外定义,使其以“n=”的格式将Sample对象的值输出到屏幕上。请在注释“* *4* *”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件MyMain7.cpp清单如下:
//MyMain7.cpp
include<iostream>
using namespace std;
class Sample
{
private:
//* * 1* *
public:
Sample(){}
//* *2* *
Sample add(Sample s1,Sample s2)
{
//* *3* *
}
void disp();
};
void Sample: :disp()
{
//* * 4 * *
}
int main()
{
Sample s1(10),s2(5),s3;
cout<<"s1:";
s1.disp();
cout<<"\n S2:";
s2,disp();
s3.add(s1,S2);
cout<<"\n s3.add(s1,s2)\n s3:";
s3.disp();
return 0;
}
第7题:
使用VC6打开考生文件夹下的工程test42_3。此工程包含—个test42_3.cpp,其中定义了类Cpolygon、COutput和CTriangle,其中CTriangle类由Cpolygon和COutput类public派生,但三个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)定义类CPolygon的保护数据成员width和height,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。
(2)完成类CPolygon的成员函数set_values(int a,int b),使参数a和b分别赋值给保护数据成员width和height,请在注释“//**2**”之后添加适当的语句。
(3)完成类Coutput的成员函数output(int)的定义,将传入的参数为血型的i输出到屏幕并换行,请在注释“//**3**”之后添加适当的语句。
(4)完成派生类CTriangle的声明,它由Cpolygon和COutput类public派生,请在注释“//**4**”之后添加适当的语句。
源程序文件test42_3.cpp清单如下:
include <iostream.h>
class CPolygon
{
protected:
// ** 1 **
public:
void set_values(int a, int b)
{
// ** 2 **
}
};
class COutput
{
public:
void output(int i);
};
void COutput::output(int i)
{
// ** 3 **
}
// ** 4 **
{
public:
int area (void)
{
return (width * height / 2);
}
}
int main ()
{
CTriangle trgl;
trgl.set_values (4,5);
trgl.output (trgl.area());
return 0;
}
第8题:
使用VC6打开考生文件夹下的工程test40_3。此工程包含一个test40_3.cpp,其中定义了类CVector,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)完成类CVector构造函数的定义,把传入的int型参数a和b分别赋值给类的成员变量x和y。请在注释“//**1**”之后添加适当的语句。
(2)完成类CVector的“+”运算符重载函数的定义,使Cvector类的两个对象相加时可以直接使用符号“+”,并且结果仍然为类Cvector的对象,请在注释“//**2**”之后添加适当的语句。
(3)在主函数中添加适当的语句,把类Cvector的对象a和b相加,并且把结果保存在对象c中,最后以“x,y”的形式输出在屏幕上,请在注释“//**3**”之后添加适当的语句。
源程序文件test40_3.cpp清单如下:
include <iostream.h>
class CVector
{
public:
int x,y;
CVector () {};
CVector (int,int);
CVector operator + (CVector);
};
CVector::CVector (int a, int b)
{
//**1**
}
CVector CVector::operator+ (CVector param)
{
//**2**
temp.y = y + param.y;
return (temp);
}
int main ()
{
CVector a (3,1);
CVector b (1,2);
CVector c;
//**3**
return 0;
}
第9题:
使用VC6打开考生文件夹下的工程MyProj13。此工程包含一个源程序文件MyMain12.cpp。程序中定义了两个类Base和Derived,但类的定义并不完整。
请按要求完成下列操作,将类的定义补充完成:
①定义类shapes的保护成员x和y,它们都是整型变量。请在注释“//* *1* *”之后添加适当的语句。
②完成构造函数shapes(int d,int w)定义,使类shapes的保护成员x、y分别初始化为d、w,并分别具有默认值0、0。请在注释“//* *2* *”之后添加适当的语句。
③完成类shapes的成员函数setvalue(int d,int w)的定义,shapes类的数据成员x和y分别被设置成d和w。请在注释“//* *3* *”之后添加适当的语句。
④将类shapes的成员函数void disp()设置成纯虚函数。请在注释“//* *4* *”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件MyMain13.cpp清单如下:
//MyMain13.cpp
include<iostream>
using namespace std;
class shapes
{
//* * *1* * *
public:
//* * *2* * *
void setvalue(int d,int w)
{
//* * *3* * *
}
//* * * 4 * * *
};
class square : public Shapes
{
public:
void disp()
{
cout<<x*y<<end1;
}
};
int main()
{
shapes*ptr;
square s1;
ptr=&s1;
ptr->setvalue(10,5);
ptr->disp();
return 0;
}
第10题:
使用VC6打开考生文件夹下的工程test20_3,此工程包含一个源程序文件tes00_3.cpp,其中定义了用于表示复数的类comp,但类comp的定义并不完整。请按要求完成下列操作,将类comp的定义补充完整。
(1)定义comp的构造函数,函数含参数x和y,它们都是in,型的数据,默认值都为0,请使用参数列表的形式分别将类数据成员a和b初始化x和y的值。请在注释“//**1**”之后添加适当的语句。
(2)完成类comp的成员函数input(int x,int y)的定义,将int型的参数x和y分别赋值给数据成员s和b,请在注释“//**2**”之后添加适当的语句;
(3)完成类comp的友元函数friend compplus(comp &x,comp &y)的定义,该函数首先要定义一个comp类的对象c,然后将参数x和y的数据成员a与b分别相加并分别赋值给c的成员a和b,最后返回c的值,请在注释“//**3**”之后添加适当的语句。输出结果如下:
10+20i
2+3i
result:12+23i
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test20_3.cpp清单如下:
include <iostream.h>
class comp
{
int a;
int b;
public:
//**1**
friend comp plus(comp &x, comp &y);
void input(int x,int y)
{
//**2**
}
void output ( )
{
cout<<a<<'+'<<b<<"i"<<end1;
}
};
comp plus(comp &x, comp &y)
{
//**3**
c.b=x.b+y.b;
return c;
}
void main()
{
comp x(10,20),y,z;
y.input(2,3);
z=plus(x,y);
x.output();
y.output();
cout<<"result:";
z.output();
}