1、国家二级 C+机试(操作题)模拟试卷 36及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错误,请改正程序中的错误,使得程序运行后没有内存遗漏。可以在修改处增加或者删除一条语句。本程序完成输入两个字符串,分别存储到 s1, s2中。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 1 #include 2 void main() 3 4 char*s1; 5 char s21024; 6 cout 2 void fun(int i) 3 4 5 6 int main() 7
2、8 fun(5); 9 return 0; 10 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp, 通过把类 Distance定义为类 Point的友元类,来实现计算两点之间距离的功能。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)把类 CDistance定义为类 CPoint的友元类。请在注释 *1*之后添加适当的语句。 (2)定义类 CPoint的构造函数,完成给私有数据成员 x和 y的赋值,并且两个参数的缺省值都为 0。请在注释 *2*之后添加适当的语句。 (3)完成类 CDistance的成员函数 length(Point&pP
3、oint, Point&qPoint)定义,并在其中计算点 p、 q之间的距离,并且返回结果。假设两点之间的距离distance=sqrt(pPoint x - qPomt x)*(pPoint x - qPoint x)+(pPoint y -qPoint y)*(pPoint y - qPoint y)。请在注释 *3*之后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 1 #include 2 #include 3 using namespace std; 4 class CPoint 5 6 public: 7 *1* 8 9 定义类
4、 Point的构造函数 10 *2* 11 12 void display() cout;,故第 1个标识下应添加 “friend class CDistance; ”。 (2)类 CPoint的构造函数完成给私有数据成员 x和 y的初始化,两个参数的缺省值都为 0,因此参数含有默认值 0,故第 2个标识下应添加 “CPoint(float a=O,floatb=0)x=a; y=b; ”。 (3)类 CDistance的成员函数 length(CPoint&pPoint, CPoint&qPoint)返回点 P、q之间的距离,可由公式 distance=sqrt(pPoint X-qPoint X)*(pPoint X-qPoint x)+(pPoint Y-qPoint y)*(pPoint y-qPoint y)计算求得,第 3个标识下 应添加 “return sqrt(pPoint x-qPoint x)*(pPoint X-qPoint x)+(pPoint y-qPoint y)*(pPoint Y-qPoint y); ”。