1、国家二级 C+机试(操作题)模拟试卷 107及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi l 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*的下面,修改该语句即可。 #include #include void main() int i, j, k; for(i=5 ; i=l j i一一 ) *error* for(j=1; j=i ;k+) cout(0; k+) cout 注意只
2、能使用 int类型,不能类型转换 int fun(char*S1, char*s2) ) void main() char s11 024; char s22 5 6; cout C1ass TestClass *1* int m Other; public: TestClass(int i) m Other=i ; *3* return mNumber+obj一 m_ Other; , *2* int main() TestClass obj(11); *4* cout0 ; k一一 ) 二、简单应用题 2 【正确答案】 int size=0; 初始化字符串 统计变量个数 int sllen
3、 ; int s2len; for(sllen=0 ; s1sllen!=0; sllen+); 第一个字符串循环 for(s21en=0; s2s21en!=0; s21en+); 第二个字符串循环 for(int i=0; isllen; i+) int j=0; for(; Js2len;j+) if(sli+j!=s2j) 将第二个 串中的字符与第一个串中的字符比较 break; if(J=s2len) +size; i+=j ; 一一 i ; return size; 【试题解析】 (1)该程序功能是计算 s1中出现 s2的个数。它的解题思路是两个字符串逐个比较其中的字符,从而统计符
4、合的字符串个数。 (2)从已给部分源程序的 main主函数开始入手,核心函数 int fun(char*sl, char*s2)中的 s1, s2参数为输入的字符串。 解题思路 (1)size变量用来存放 s1中出现 s2的个数,初始值赋为 0。 (2)然后利用 for循环对 s2中的每一个字符与 s1中的字符进行比较。 (3)如果循环中有符合条件的字符串,就将变量 size个数加 1。 三、综合应用题 3 【正确答案】 (1)添加语句: static int m Number; (2)添加语句: int TestClass: m Number=10; (3)添加语句: static int get(TestClass*obj) (4)将 “coutendl ; ”补充完整为: cout obj get(&obj)endl;