1、国家二级 C+机试(操作题)模拟试卷 375及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错误,请改正错误,使得程序正常运行。并使程序输出结果为: ABCDEF ABCDEF ABCDEF 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include void main() *error* char s 1=”ABC “DEF”; *error* char s2=”ABC DEF”; *error* char S3=“ABC”+“DEF”; Cout #include
2、int factorial(int n) void main() cout Class CRect private: *1* public: *2* *3* void SetPoints(double, double, double, double); void SetLeftPoint(double m)leftPoint=m; ) void SetRightP0int(double m) rightPoint=m; ) void SetTopPoint(double m)topPoint=m; ) void SetBottomPoint(double m)bottomPoint=m; )
3、void Di splay(); ; CRect: CRect(double 1, double t, double r, double b) leftPoint=1; topPoint=t; rightPoint=r; bottomPoint =b; void CRect: SetPoints(double 1, double t, double r, double b) leftPoint=1; topPoint=t; rightPoint=r; bottomPoint =b; void CRect: misplay() cout“lefttop point iS (”1eftPoint“
4、, ”topPoint“)” n; cout”rightbottom point is (”rightPoint”, ”bottomPoi nt) n; void msin() CReCt rect0; rect0 Di splay(); rect0 SetPointS(20, 20 6, 30, 4 0); rect0 Display(); CRect rectl(0, 0, 150, 150); rectl SetTopP0int(10 5); rectl SetLeftPoint(10 5); *4* rect2 Di splay(); 国家二级 C+机试(操作题)模拟试卷 375答案与
5、解析 一、基本操作题 1 【正确答案】 (1)char s 1=“ABC” (2)char s2=“ABC (3)char s3=“ABC” 【试题解析】 程序要求输出字符串数组的值。从己定源程序的 main主函数开始入手,可以看出程序通过输出函数 cout实现三个字符串数组值的输出。 二、简单应用题 2 【正确答案】 if(n1) return 0; else if(n=1) return 1; else return n*factorial(n一 1); 【试题解析】 factorial(int n)求出 n的阶乘,要求使用递归调用。递归调用是指在调用一个函数的过程中直接或间接地调用该函数
6、本身, n的阶乘计算公式为:n!=n(n-1)(n-2)2x1 ,即 n!=n(n-1)!,因此 factorial(intn)的递归过程为:return n*factorial(n-1)。 三、综合应用题 3 【正确答案】 (1)添加语句: double leftPoint, topPoint, rightPoint,bottomPoint; (2)添加语句: CRect(double leftPoint=0, double topPoint=0, double rightPoint=0,double bottomPoint=0); (3)添加语句: CRect(); (4)添加语句: CR
7、ect rect2(rectl); 【试题解析】 程序中定义了一个表示矩形的类 CRect,该类中定义了私有数据成员 leftPoint、 topPoint、 rightPoint、 bottomPoint,分别用于 表示矩形左上角及右下角的点的坐标且它们的数据类型都是 double型,类 CRect有多个成员函数,SetPoints(), SetLefiPoint0函数可改变成员变量 leftPoint的值,而 SetRightPoint()成员函数可改变 rightPoint的值, SetTopPoint0可改变 topPoint的值,SetBottomPoint()改变 bottomPoint的值, Display()成员函数显示成员变量的值。