1、国家二级 C+机试(操作题)模拟试卷 359及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: Hello 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构, 错误的语句在 *error*的下面。 include void main() f *error* typedef BOOL bool; *error* BOOL a=FALSE; int i=0X80000000; *error* a=!i; if(a) cout void fun(int n) v
2、oid main() int n; coutn; if(n #include #include class TestClass public: TestClaSS(char*fileName) len=0; fStream infile; infile open(fileName, ios: in); char ch; *1* while() coutch; *2* infile Close(); void split() fstream outfile1; fstream outfile2; outfilel open(“out1 txt”, ios: out); outfile2 open
3、(“out2 txt”, ios: out); int i=0; for(i=0; ilen 2; i+) outfilelbufi; do *3* while(i!=len); outfile1 close(); outfile2 close(); private: int fun; char buf1024; ; void main() *4* TestClass Fsp(); Fsp split(); return; 国家二级 C+机试(操作题)模拟试卷 359答案与解析 一、基本操作题 1 【正确答案】 (1)typedef bool BOOL; (2)BOOL a=false; (3
4、)a=(i!=0); 【试题解析】 程序要求输出 Hello。本题程序中不存在复杂的结构,从己定源程序的 main主函数依次处理错误提示下的语句即可。 二、简单应用题 2 【正确答案】 int i; for(i=0; in; i+) 外层循环。要打印的行数 int j; for(j=0; Jni一 1 ; j+) 循环打印空格 cout ; for(; jn ; j+) 循环打印 # cout“#”; coutendl; 打印每一行的回车 【试题解析】 (1)该程序功能是打印题目中要求的 #字形状。它的解题思路,在不显示 #字地方,用空格占位。 (2)从己给部分源程序的 main主函数开始入手
5、,核心函数 void fun(int n)中的 n参数为输入的要打印的行数。 三、综合应用题 3 【正确答案】 (1) 将 “while() ” 完整为: while(infile get(ch) (2)添加语句: buf1en+=ch; (3)添加语句: outfile2bufi+; (4)将 “Testclas s Fsp(); ”完整为: TestClass Fsp(“modi3 txt”); 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数开始入手,可以看出程序通过调用类 TcstClass及其成员函数实现各种输 出操作。