1、国家二级 C+机试(操作题)模拟试卷 99及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为: Hello Visual C+! Hello Visual C+! 注意:错误的语句在 *error*的下面,修改该语句即可。 #include class CMyObj ect public: CMyObject() *error* cout #define MAXLINE 1000 void fun(char*s1, char*s2) void main() char S1MA
2、XLINE; char s2256; cout #include #include C1ass TestClasS public: TestClass(char*fileName) len=0 ; fstream infile ; infile open(fileName, ios: in); char ch; *1* while() cout(ch; *2* infile close(); void split() fstream outfilel ; fstream outfile2 ; outfilel open(”outl txt”, ios: out); outfile2 open(
3、”out2 txt”, ios: out); int 1=0 ; for(i=0 ; ilen 2 ; i+) outfilelbufi; do *3* )while(i!=len); outfilel close(); outfile2 close(); private: int len ; char buf1024; ; void main() *4* TestClass Fsp(); Fsp split(); return; 国家二级 C+机试(操作题)模拟试卷 99答案与解析 一、基本操作题 1 【正确答案】 (1)cout”Hello, ” (2)cout“Hello, (3)CMy
4、Object() 【试题解析】 (1)由程序的运行结果可知,语句 CMyObject 0bil;定义 objl对象调用默认的构造函数,此时屏幕上输出 “Hello Visual C+!”, tout流中的数据是 用流插入运算符 “”顺序加入的,第 1个标识下 “Hello, ”字符串插在输出流中,因此必须加双引号引用起来,即第 1个标识下应该为 “cout”Hello。 (2)第 2个标识下 “ n”表示换行,与要求的输出结果不同,因此第 2个标识下应改为 “cout”Hello, ”。 (3)析构函数是一个特殊的函数,其函数名与类名相同,并在其名加 “ ”,用来与构造函数加以区别,因此第 3
5、个标识下应改为 “-CMyObject0”。 二、简单应用题 2 【正确答案】 int i=0; for(i=0; s1i!=0; i+); 指向第一个串尾 for(intj=0 ; s2j!=0 ; j+) 利用循环将第二个串拷贝到第一个串尾 s1i+=s2j; s1i=0 ; 加尾符 【试题解析】 (1)该程序功能是将字符串 s2连接在字符串 s1之后。它的解题思路,首先指向字符串 s1的尾,然后将第二个字符串 s2的内容依次拷贝到第一个串的尾。 (2)从已给部分源程序的 main主函数开始入手,核心函数 void fun(char木 s1,char*s2)中的 s1和 s2为要连接的字符
6、串。 解题思路 (1)首先利用循环指向第一个串尾。 (2)然后利用 for循环将第二个串连接到第一个串尾。 (3)最后在新生成的串尾加尾符号。 三、综合应用题 3 【正确答案】 (1)将 hile()”完整为: whi 1e(infile get(ch) (2)添加语句: buf1en+=ch; (3)添加语句: OUtfile2bufi+; (4)将 “Testclass Fsp(); ”完整为: Test class Fsp(”modi3 txt”); 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数
7、开始入手,可以看出程序通过调用类 TestClass及其成员函数实现各种输出操作。 解题思路 (1)题目 1要求 “从输入文件中获得一个字符,并判断是否到文件结尾 ”。程序中的“while()”循环判断语句中缺少从文件中获得的字符,所以这里补全 while循环判断条件,即 “while(infile get(ch)“。 (2)题目 2要求 “把获得的输入文件的内容存储到 buf中,并且用 len记录下文件的长度。 ”所以为 buf分配空间,即 “bulf1en+=ch; ”。 (3)题目 3要求 “将输入文件的后一半内容存储在第二个文件中。 ”在 c+中,用流插入运算符为 “,所将 buf中存放的数据存入文件 outfile2,以根据题干中的要求,即这里补全 “outfile2bufi+; ”。 (4)题目 4要求 “使用文件流对象打开输入文件 modi3 txt。 ”程序应该是调用类“TestClass”中的成员函数 “split”。类的构造函数定义中存在参数 char*fileName,所以修改注释下的语句缺少参数。 即 “TestClassFsp(“modi3 txt”); ”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1