1、国家二级 C+机试(操作题)模拟试卷 314及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请改正程序中的错误,使得程序运行后没有内存遗漏。可以在修改处增加或者删除一条语句。本程序完成输入两个字符串,分别存储到 s1,s2 中。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在*error*的下面。#includeiostreamhvoid main() char* s1; char s21024; cout“please input
2、 a string:“endl; *error* cingetline(s1,1024); cout“please input a string:“endl; cingetline(s2,1024);*error* delete s1; *error* delete s2, return;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。请完成函数 fun(int x),该函数功能是判定 x的所有的约数,并且在函数中调用写函数 WriteFile()将结果输出到 modi2txt 文件中。 例如:x=10 的约数为
3、1,2,5,10。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #include #inClude #include using namespace std; void WriteFile(int c) ofstream out1; out1open(“modi2txt“,ios base:binary ios_base:app); out1c ; out1Close(); Void fun(int c) void ClearFile() ofstream out1; out1open(“modi2txt“); out1Close(); int main() Cl
4、earFile(); fun(10); return 0; (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)基类 Person完成打印功能,定义其中的打印函数为虚函数,请在注释*1*后添加适当的语句。 (2)类 Man继承于 Person,在构造函数中设置性别为 1,请在注释*2*后添加适当的语句。 (3)类 Woman继承于 Person,在构造函数中设置性别为 0,请在注释*3*后添加适当的语句。 (4)实现函数 fun(),用
5、于传递不同的类型,打印出性别,请在注释*4*后添加适当的语句。 输出的内容如下: Sex=Man Sex=Woman 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#includeiostreamhClass Personpublic: *l* void print(); int Sex;class Man:public Pemson(public: Man() *2* void print() cout“Man“endl: ;class Woman:public Personpublic: Woman() *3* void print() cout“Woman“endl: ;*
6、4* cout“Sex=“; pprint();int main() Man m; fun(m); Woman n ; fun(n); return 0;(分数:2.00)_国家二级 C+机试(操作题)模拟试卷 314答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,该程序运行时有错误,请改正程序中的错误,使得程序运行后没有内存遗漏。可以在修改处增加或者删除一条语句。本程序完成输入两个字符串,分别存储到 s1,s2 中。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,
7、错误的语句在*error*的下面。#includeiostreamhvoid main() char* s1; char s21024; cout“please input a string:“endl; *error* cingetline(s1,1024); cout“please input a string:“endl; cingetline(s2,1024);*error* delete s1; *error* delete s2, return;(分数:2.00)_正确答案:(正确答案:(1)s1=new char1024, (2)deletes1; (3)删除“delete s2
8、;”语句)解析:解析:(1)s1 变量为指针变量,在使用前要对其分配空间,所以第 1个标识下添加“s1=new char1024;”。 (2)为了防止内存空间的泄漏,指针变量使用后,要将其空间释放,第二个标识下“deletes1;”。 (3)s2 是数组变量,空间是在使用前静态分配的,不是使用前动态分配的,所以使用后不用释放内存空间,这里应该删除“delete s2;”。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。请完成函数 fun(int x),该函数功能是判定 x的所有的约数,并且在函数中调用写函数 WriteFile()将结
9、果输出到 modi2txt 文件中。 例如:x=10 的约数为 1,2,5,10。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #include #inClude #include using namespace std; void WriteFile(int c) ofstream out1; out1open(“modi2txt“,ios base:binary ios_base:app); out1c ; out1Close(); Void fun(int c) void ClearFile() ofstream out1; out1open(“modi2t
10、xt“); out1Close(); int main() ClearFile(); fun(10); return 0; (分数:2.00)_正确答案:(正确答案:for(int i=l;i=x;i+) if(xi=0) 如果 x被 i整除,那么 i为 x的约数 WriteFile(i); 将约数 i存入文件 )解析:解析:(1)由 1到 x,循环判断其中是否有 x的约数。(2)如果 X被 i整除,那么 i为 X的约数。(3)最后调用 WriteFile函数,将约数 i存入文件。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定
11、义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)基类 Person完成打印功能,定义其中的打印函数为虚函数,请在注释*1*后添加适当的语句。 (2)类 Man继承于 Person,在构造函数中设置性别为 1,请在注释*2*后添加适当的语句。 (3)类 Woman继承于 Person,在构造函数中设置性别为 0,请在注释*3*后添加适当的语句。 (4)实现函数 fun(),用于传递不同的类型,打印出性别,请在注释*4*后添加适当的语句。 输出的内容如下: Sex=Man Sex=Woman 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#include
12、iostreamhClass Personpublic: *l* void print(); int Sex;class Man:public Pemson(public: Man() *2* void print() cout“Man“endl: ;class Woman:public Personpublic: Woman() *3* void print() cout“Woman“endl: ;*4* cout“Sex=“; pprint();int main() Man m; fun(m); Woman n ; fun(n); return 0;(分数:2.00)_正确答案:(正确答案
13、:(1)将“void print();”补充完整为:virtual void print(); (2)添加语句:sex=1; (3)添加语句:sex=0; (4)添加语句:Void fun(Personp)解析:解析:(1)题目 1要求“基类 Person完成打印功能,定义其中的打印函数为虚函数”。虚函数是函数的一种,定义虚函数,在函数名前声明 virtual就可以了,所以第 1个标识下的“void print();”语句修改为“virtual void print();”。 (2)题目 2要求“类 Man继承于 Person,在构造函数中设置性别为 1”。基类 Person中变量 sex是用来存放性别的,Man 继承 Person,所以 Man中性别的变量可以使用基类中的 sex变量,设置性别为 1,即“sex=1;”。 (3)题目 3要求“类 Woman继承于 Person,在构造函数中设置性别为 0”。同(2),在第三个标识下添加“sex=0;”。 (4)题目 4要求“实现函数fun(),用于传递不同的类型,打印出性别”。根据“pprint();”语句知道,fun()函数的形参为指针P,由于它调用了基类 Person中的成员函数 print(),所以 P的基类为 Person,即添加函数 fun()的定义为“void fun(Personp)”。