1、国家二级 C+机试(操作题)模拟试卷 66及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序的执行结果为: 1 2 3 4 5 4 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1 注意:错误的语句在 *error*的下面,修改该语句即可。 1 #include 2 #include 3 void mein() 4 5 int i, j, k ; 6 for(i=5 ; i=1; i-) 7 8 *error* 9 for(J=1; j=i ; k+) 13 co
2、ut0 ; k+) 16 cout 2 #define M 2 3 #define N 4 4 void fun(int aMN, int *sum) 5 6 7 8 void main() 9 10 int XMN=7, 6, 5, 2, 4, 2, 8, 3); 11 int S; 12 fun(X, &s); 13 cout 2 *1* 3 4 #define FALSE 0 5 *2* 6 7 class A2 8 9 private: 10 b001 m A2; 11 friend bool func(A2& obj1, A1& obj2); 12 public: 13 A2() 1
3、4 15 m_A2=FALSE ; 16 17 publiC: i8 void setA2(bool n) 19 20 m_A2=n; 21 22 ; 23 class A1 24 25 private: 26 bool m A1 ; 27 *3* 28 29 public: 30 A1() 31 32 m_A1=TRUE; 33 34 publiC: 35 void setAl(bool n) 36 37 m_A1=n; 38 39 ; 40 bool func(A2& obj1, A1& obj2) 41 42 *4* 43 return 44 45 int main() 46 47 A2
4、 obj 0 ; 48 A1 obj1; 49 cout0 ; k-) 【试题解析】 本题属于绘制图形题,观察可知输出图形左右对称,从上至下有规律变化,因此可采用循环输出的方式得到该图形。输出图形呈倒金字塔型,即开始输出的空格逐步增多;由于图形左右对称,从左边到中间数值逐渐增大,到最大值后逐渐减小,因此可以分两次输出数值,一个循环负责输出左半部分,另一个输出右半部分数值。 解题思路 (1)分析可知,两个循环负责输出两半数值,刚开始还有空格,而且空格书逐行增加,因此也必须用循环来实现输出空格,即内层第一个小循环负责输出空格,因此 for(j=1 ; j=i; k+)应改为 for(k=1; k0
5、; k+)应改为 for(k=i-1;k0; k-)。 二、简单应用题 2 【正确答案】 1 int i, j, k, s=0; 2 for(i=0; iaij)k=j ; 求得每一行的最小值 7 s+: aik; 最小值求和 8 9 *sum=s; 返回求和值 【试题解析】 (1)该程序功能是求二维数组每行元素中的最小值,并计算它们的和值。本题解题 思路基本可以分为两重循环,外重循环为对二维数组的所有行进行循环,内重循环为对每一行内进行列循环,求出每一行中的最小值。最后求出这些最小值的和。 (2)从已给部分源程序的 main主函数开始入手,核心函数 void fun(int aMN,int*
6、sum)中的 a参数为二维数组, sum为要求得的和。 解题思路 (1)依次访问每一行的元素。 (2)在对每一行的访问过程中选出最小数。 (3)将选出的最小数求和。 三、综合应用题 3 【正确答案】 (1)添加语句: #define TRUE 1 (2)添加语句: class A1; (3)添加语句: friend boo func(A2&obl1, A1&obj2); (4)将 “return”补充完整为: return obj1 m A2=TRUE & obj2 m_A1=TRUE ; 【试题解析】 程序当中定义了两个类,每个类中具有一个 bool型成员变量,函数 func(A2&objl
7、, Al&obj2)功能是检查这两个类的成员变量值是否都为 TRUE,如果均为 TRUE返回真,否则返回 FALSE,相当于 一个逻辑与运算。 解题思路 (1)#define命令一般将一个指定的标识符 (即宏名 )来代表一个字符串,其定义形式一般为: #define宏名 (参数表 )字符串,因此第 1个标识下应添加 #define TRUE 1。 (2)类声明格式为: “class: ”,故第 2个标识下应添加 “classAl: ”。 (3)友元不是本类的成员函数,在它的函数体内部可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字 friend修饰的非成员函数, 3出添加语句: “friend bool func(A2&0bjl, A1&obj2); ”。 (4)函数 func返回变量 m A2和 m Al的逻辑与运算结果,因此第 4标识下应改为“return obil m A2=TRUE&obj2 m A1=TRUE; ”。