1、国家二级 C+机试(操作题)模拟试卷 391及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: number1=a number2=a number1=a number2=b 注意:错误的语句在*error*的下面,修改该语句即可。 #include class CMyClass public: *error* friend void SetValue(CMyClas obj,char C) objnumber1=c; objn
2、umber2=c; *error* void SetValue(CMyClass obj char c1,char c2) objnumber1=c1; objnumber2=c2; void display() coutnumber:number:_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分程序,使函数 fun()实现以下功能:找出一个整数,它加上 100后是一个完全平方数,再加上 268又是一个完全平方数,请问该数是多少? 程序分析:在 10万以内判断,先将该数加上 100后再开方,再将该
3、数加上268后开方,如果开方后的结果满足条件,即是结果。 #include #include void fun() int main() fun(); return 0; (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)定义类 CPoint的带有两个参数的构造函数,两个变量为 x、y都为 int型,且缺省值为 0。请在注释*1*后添加适当的语句。 (2)完成类 CRectangle的构造函数,给 pointl和 point2进行赋值
4、。请在注释*2*后添加适当的语句。 (3)完成类 CRectangle的函数 GetArea(),用来计算矩形面积。请在注释*3*后添加适当的语句。 (4)定义 CRectangle类,拥有两个私有对象 pointl和 point2, 类型为 Point, 请在注释*4*后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include #include Class CPoint public: *1* x=i; y=1; int GetX() return x; int GetY() return y; private: int X,Y; ; Class CR
5、ectangle public: *2* int GetArea() *3* int height=point1GetY() 一 point2GetY(); return(width。height)? width*height:一width*height; int GetGi rth() int width=abs(pointl GetX()一 point2GetX(); int height=abs(pointl GetY()一 point2GetY(); return (2*(width+height); private: *4* CPoint point2; ; int main() C
6、Rectangle rect(5,2,13,18); coutrectGetArea()rectGetGirth()_国家二级 C+机试(操作题)模拟试卷 391答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: number1=a number2=a number1=a number2=b 注意:错误的语句在*error*的下面,修改该语句即可。 #include class CMyClass public: *error* f
7、riend void SetValue(CMyClas obj,char C) objnumber1=c; objnumber2=c; *error* void SetValue(CMyClass obj char c1,char c2) objnumber1=c1; objnumber2=c2; void display() coutnumber:number:_正确答案:(正确答案:(1)friend void SetValue(CMyClas sobj,char c) (2)void SetValue(CMyClasSobj,char c1,char c2) (3)tSetValue(t
8、,a,b);)解析:解析:程序中定义了类 CMyClass,含有两个成员变量 char型变量 number1和 number2,友元SetValue()函数,成员函数 SetValue()和 display()函数,SetValue()函数可改变 number1和 number2的值,display()函数在屏幕上打印 number1和 number2的值。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分程序,使函数 fun()实现以下功能:找出一个整数,它加上 100后是一个完全平方数,再加上 2
9、68又是一个完全平方数,请问该数是多少? 程序分析:在 10万以内判断,先将该数加上 100后再开方,再将该数加上268后开方,如果开方后的结果满足条件,即是结果。 #include #include void fun() int main() fun(); return 0; (分数:2.00)_正确答案:(正确答案:long int 1,x,y,z; for(i=1;i100000;i+) x=sqrt(i+100); x为加上 100后开方后的结果 y=sqrt(i+2 68); y 为再加上 268后开方的结果 if(x*x=i+100&y*y=i+268) 如果一个数的平方根的平方等
10、于该数,说明此数是完全平方数 coutiendl; )解析:解析:(1)该程序功能是找出一个整数,它加上 100后是一个完全平方数,再加上 268又是一个完全平方数。它的解题思路,根据题干中给出的分析可知解题思路为,先将该数加上 100后再开方,再将该数加上 268后开方,如果开方后的结果满足条件,即是结果。 (2)从已给部分源程序的 main主函数开始入手,核心函数 void fun()实现题目中的功能。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1
11、)定义类 CPoint的带有两个参数的构造函数,两个变量为 x、y都为 int型,且缺省值为 0。请在注释*1*后添加适当的语句。 (2)完成类 CRectangle的构造函数,给 pointl和 point2进行赋值。请在注释*2*后添加适当的语句。 (3)完成类 CRectangle的函数 GetArea(),用来计算矩形面积。请在注释*3*后添加适当的语句。 (4)定义 CRectangle类,拥有两个私有对象 pointl和 point2, 类型为 Point, 请在注释*4*后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include #incl
12、ude Class CPoint public: *1* x=i; y=1; int GetX() return x; int GetY() return y; private: int X,Y; ; Class CRectangle public: *2* int GetArea() *3* int height=point1GetY() 一 point2GetY(); return(width。height)? width*height:一width*height; int GetGi rth() int width=abs(pointl GetX()一 point2GetX(); int
13、 height=abs(pointl GetY()一 point2GetY(); return (2*(width+height); private: *4* CPoint point2; ; int main() CRectangle rect(5,2,13,18); coutrectGetArea()rectGetGirth()_正确答案:(正确答案:(1)添加语句:CPoint(int i=0,int J=0) (2)添加语句:CRectangle(int top,int left, int right,int bottom):pointl(top,left),point2 (right,bottom) (3)添加语句:int width:pointlGetX()一 point2GetX(); (4)添加语句:CPoint pointl;)解析:解析:程序中定义了 CPoint和 CRectangle两个类,分别表示点坐标类和矩形类,点坐标类有 2个私有成员变量 x和 y表示坐标值,矩形类有 2个 CPoint成员。函数 GetArea0用来计算矩形面积,可由矩形的长和宽计算得到,同样 GetGirth0函数返回矩形的周长也可由长和宽得到。主函数内定义一个CRectangle对象,分别调用 GetArea0和 GetGirth0计算面积和周长,然后打印计算结果。