1、国家二级 C+机试(操作题)模拟试卷 432及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为: 30 130 注意:错误的语句在*error*的下面,修改该语句即可。#includeiostreamhint a=10;class CObjpublic: CObj() a=b=0; void display() *error* coutabend1; ) void func(int a) *error* a+=a;
2、 void func2() *error* a+=a; )private: int a,b;void main() CObj obj; objfunc(3); objdisplay(); objfunc2(); objdisplay();(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码。函数 num(char *str)实现返回字符串中非数字的个数。 例如:abc123abc45 返回输出:6 将函数 num()补充完整。 注意:请勿改动主函数。 #include int num(char *
3、str) int main() char str1024; cout9stri0”的字符为非数字字符,非数字字符个数加 1,循环结束就得到了非数字字符的个数。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)完成构造函数,设置数组元素的个数为 0,请在注释*1*之后添加语句。 (2)完成函数 AddMember(int n),如果参数 n包含在类的数据成员数组中,则返回 0,否则把数据写入数组,然后返回 1,请在注释*2*之后添加语句。(3)完成函数 D
4、elMember(int n),如果变量在数据中,则删除该变量,并且返回 1,如果不存在则返回0,请在注释*3*之后添加语句。 (4)完成成员函数 islnclude(int n)的定义,该函数检查参数 n是否在类的数据成员数组 elems中,如果在返回 1,否则返回 0。请在注释*4*之后添加语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#includeiostreamh#define MAX_LENGTH 500class CArraypublic: CArray() *1* int AddMember(int n) for(int i=0;ilength;i+) *
5、2* if(Arrayi=n) return 0; ) Arraylength+=n; return 1; int DeiMember(int n) int i; for(i=0;ilength;i+) if(Arrayi=n) break; *3* if() for(;ilength-1;i+) Arrayi=Arrayi+1; ) length-; return 1; return 0; int isInclude(int n) for(int i=0,ilength;i+) *4* if() return 1; return 0; private: int ArrayMAX_LENGTH
6、; int length;用来记录数组的个数;int main() CArray obj; objAddMember(1); objAddMember(3); objAddMember(8); objAddMember(23); coutobjis Include(8)end1; coutobjisInclude(11)end1; objDelMember(3); objDelMember(8); coutobjisInclude(2)end1; coutobjis Include(1)end1; return 0;(分数:2.00)_正确答案:(正确答案:(1)添加语句:length=0;
7、(2)将“if(Arrayi=n)”补充完整为:if(Arrayi=n)或 if(n=Arrayi) (3)将“if()”补充完整为:if(i解析:解析:(1)使 length的初始化为 0,因此添加语句:“length=0;” (2)第 2个标识下是检查 n是否已经在数组当中存在,用 if语句来判断,即 if(Arrayi=n)或 if(n=Arrayi)。 (3)DelMember(int n)函数删除指定的元素,由于元素在数组当中的位置未知,因此必须先查找该元素的位置,在该函数的实现过程当中通过 for循环来完成,即第一个 for循环查找 n在数组中的位置。如果 n存在于数组中,那么 if中的 break语句就会执行跳出循环,此时循环变量 i的值会小于 length,即通过判断 i的值是否小于 length值可以知道 n是否存在数组中,如果存在数组中接下来进行删除操作。即第 3个标识下应改为 if(i