1、国家二级 C+机试(操作题)模拟试卷 369及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,该程序运行时有误,请改正其中的错误,使程序正常运行,并使程序在界面上输出为: 平均值为:29 最大值为:112 最小值为:一 11 注意:错误的语句在*error*的下面。修改该语句即可。#includeiostreamusing namespace Std;int main() int i, Ave f Min F Max; int data8=0,1 1 2,4 3,7 8,一 1 1,一
2、6,7,9);Ave=0; for(i=0;i8;i+) *error* Ave=datai; Ave=8; cout“平均值为:”Aveendl; Max=Min=data0; for(i=0;i8;i+) *error* if(dataiMax)Max=datai; *error* if(dataiMin)Min=datai; cout“最大值为:”Maxendl; cout“最小值为:”Minendl; return 0;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。完成函数 fun(char*d,int
3、a),其功能是把S中出现的数字转换成数字存储在 a中,然后返回转换的个数。 例如:s=“1234abcdef567”: 则:a中存储着 1234567 返回:7 注意:不能修改程序的其他部分,只能修改 fun()函数。 #include int fun(char*s,int a) int main() int a(1 02 4; int len=fun(“1234abcdef567”,a); for(int i=0;iMax)Max=datai; (3)if(datai解析:解析:该程序的功能是要求数组的平均值、最大值和最小值,求平均值时先求出数组各个元素之和,然后再去求平均值;求最大最小值可
4、以采取逐个比较的方法求得。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。完成函数 fun(char*d,int a),其功能是把S中出现的数字转换成数字存储在 a中,然后返回转换的个数。 例如:s=“1234abcdef567”: 则:a中存储着 1234567 返回:7 注意:不能修改程序的其他部分,只能修改 fun()函数。 #include int fun(char*s,int a) int main() int a(1 02 4; int len=fun(“1234abcdef567”,a); for(int i=0;iai
5、i_正确答案:(正确答案:int j=0; for(int i=0; Si!=0;i+) 字符串内循环 if(si=0Si=9) 判断字符是否为 09 的字符 aj+=si一0; 如果为09 的字符,转换为整型 return j; 返回数字个数)解析:解析:(1)该程序功能是把字符串中出现的数字转换成数字存储在数组中,然后返回转换的个数。其中,字符和整型的 ASCII差为 96,即为0的 ASC码值。 (2)从已给部分源程序的 main主函数开始入手,核心函数 fun实现题目中要求的功能,其中 int fun(char*s,int a)中的 S为要转换的字符串,a为存放转换为数字的数组,返回值
6、为转换的个数。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)对文件以追加的方式打开文件。请在注释*1*后添加适当的语句。 (2)定义 m、n 为类 TestClass的公有 int型数据成员,请在注释*2*后添加适当的语句。 (3)定义 P为类 TestClass的数据成员指针,并指向类 TestClass数据成员 m, 请在注释*3*后添加适当的语句。 (4)定义 p指向类 TestClass数据成员 n,请在注释*4*后添加适当的语句。 注意:增加代码,或者修
7、改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 #include #include #include #include using namespace std; void WriteFile(int x) ofstream outl; *1* out1open(“modi3txt”, ); out1X ; out1CioSe(); void ClearFile() Ofstream out1; outlopen(“modi3txt”); outlclose(); C1ass TestClass public: void disp() coutmn_正确答案:(正确答案:(1)将“out1open(“modi3txt”, );”补充完整为: outlopen(“modi3txt”, iosbase:app); (2)添加语句:int m,n; (3) 添加语句: int Testclas s:*p=(TestClass:m); (4)添加语句:p=(Testclass:n);)解析:解析:在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类 TestClass和函数ClearFile()实现各种输出操作。