1、国家二级 C+机试(操作题)模拟试卷 359及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: Hello 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构, 错误的语句在 *error*的下面。 include void main() f *error* typedef BOOL bool; *error* BOOL a=FALSE; int i=0X80000000; *error* a=!
2、i; if(a) coutn; if(nn; if(n“输入的行数必须大于 0”_正确答案:(正确答案:int i; for(i=0;in;i+) 外层循环。要打印的行数 int j; for(j=0;Jni 一 1 ; j+) 循环打印空格 cout ; for(;jn ; j+) 循环打印# cout“#”; coutendl; 打印每一行的回车 )解析:解析:(1)该程序功能是打印题目中要求的#字形状。它的解题思路,在不显示#字地方,用空格占位。 (2)从己给部分源程序的 main主函数开始入手,核心函数 void fun(int n)中的 n参数为输入的要打印的行数。三、综合应用题(总
3、题数:1,分数:2.00)3.使用 VC6打开源程序文件 modi3cpp。其中类 TcstClass用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。 此程序将inttxt 文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件 out1txt 和 out2txt中。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释*1*后添加适当的语句。 (2)把获得的输入文件的内容存储到 buf中,并且用 len记录下文件的长
4、度。请在注释*2*后添加适当的语句。 (3)将输入文件的后一半内容存储在第二个文件中,请在注释*3*后添加适当的语句。 (4)使用文件流对象打开输入文件 intxt,请在注释*4*后添加适当的语句。注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。#includeioStreamh#includefstreamh#includeStdlibhclass TestClasspublic: TestClaSS(char*fileName) len=0; fStream infile; infileopen(fileName,ios:in); char ch;*1* w
5、hile() coutch;*2* infileClose(); void split() fstream outfile1; fstream outfile2; outfilelopen(“out1txt”,ios:out); outfile2open(“out2txt”,ios:out); int i=0; for(i=0;ilen2;i+) outfilelbufi; do*3* while(i!=len); outfile1close(); outfile2close(); private: int fun; char buf1024;void main()*4* TestClass Fsp(); Fspsplit();return;(分数:2.00)_正确答案:(正确答案:(1) 将 “while() ” 完整为:while(infileget(ch) (2)添加语句:buf1en+=ch; (3)添加语句:outfile2解析:解析:在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数开始入手,可以看出程序通过调用类 TcstClass及其成员函数实现各种输出操作。