1、国家二级 C+机试(操作题)模拟试卷 372及答案与解析 一、基本操作题 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*的下面,修改该语句即可。 #include #include void main() int i, j , k; for(i=5; i=i; i一一 ) *error* for(j=1; j=i; k+) cout0; k+) cout void s
2、how() int main() show(); return 0; 三、综合应用题 3 使用 VC6打开源程序文件 modi3 cpp。此程序的功能是将 out1 txt文件中的内容输出到屏幕与文件中。输出如下: 李一 1 78m 21 王一 1 65m 23 out2 txt文件的内容如下: 李一 1 78m 21 王一 1 65m 23 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)以输入方式打开文件 out1 txt,请在注释 *1*后添加适当的语句。 (2)以输出方式打开文件 out2 txt,请在注释 *2*后添加适当的语句。 (3)从文件中获得一个字符,判
3、断是否结束,如果结束则退出输出 。 请在注释 *3*后添加适当的语句。 (4)把获得的字符输出到文件中,请在注释 *4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。 #include #include #include Void msin() char ch; fstream infile, outfile, *1* infile open(“out1 txt”); if(!infile) cout0; k一一 ) 【试题解析】 本题属于绘制图形 题,观察可知输出图形左右对称,从上至下有规律变化,因此可采用循环输出的方式得到该图形。输出图
4、形呈倒金字塔型,即开始输出的空格逐步增多;由于图形左右对称,从左边到中间数值逐渐增大,到最大值后逐渐减小,因此可以分两次输出数值,一个循环负责输出左半部分,另一个输出右半部分数值。 二、简单应用题 2 【正确答案】 for(int i=1; i5; i+) for(int j=1; j5; j+) for(int 1=1; 15; 1+) for(int k=1; k5; k+) if(i!=j& j!=k i!=k i!=1 J!=l k!=1)条件判断 coutiJlk ; 输出显示 coutend1: 【试题解析】 函数 show0的功能是将 1、 2、 3、 4四个数字组成互不相同且无
5、重复数字的四位数,并打印在屏幕上,可用循环来查找符合条件的四位数,用每一层循环的循环变量表示 4位数当中的一个数,因此需 4重循环,在最内层循环判断是否满足条件,满足条件则输出。 三、综合应用题 3 【正确答案】 (1)将 “infile open(”outl txt”); ”补充完整为:infile open(”out1 txt”, ios: in); (2)将 “outfile open(”out2 txt”); ” 补充完整为: outfile open(”0ut2 txt”,ios: out); (3)将 “while()”补充完整为: while(infile get(ch) (4)添加语句: 0utfilech; 【试题解析】 本题的功能是将 outl txt文件中的内容输出到屏幕与文件中。解题思路为在 VC环境下打开程序,根据题干给出的几 条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数开始入手,可以看出程序是对文件的操作。