1、国家二级 C+机试(操作题)模拟试卷 353及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为: OK 注意:错误的语句在 *error*的下面,修改该语句即可。 #include Class CBase public: CBase() a=b=0; prirate: int a, b; ; class CDerirel: public CBase public: CDerivel() *error* virtual void func(); ; class CDerive
2、2: publiC CDerivel public: CDerive2() a=0; b=0; void func() *error* coutfunC(); 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。阅读下列函数说明和代码,完成空出部分程序。函数 fun(char*s, char*s1, char*s2)中形参字符串 s1和 s2有相同的字符个数,且 s1中各字符互不相同。该函数实现将已知字符串 s中所有在字符串 s1中也存在的字符,都用字符串 s2中的对应位置的字符代替。 例如:设字符串 s、 s1和 s2分别为: s=“ABCABC”, s1=“A
3、C”, s2=“ZX” 则 s2中的字符 z和 X分别对应 s1中的字符 C和 A,函数调用 fun(s, s1, s2)将字符串 s的内容变为 “ZBXZBX”。 注意:不能修改程序的其他部分,只能修 改 fun()函数。 #include void fun(char*s, char*s1, char *s2) void main() char s=“ABCABC”; fun(s, “AC”, “ZX”); std: cout template class MyArrayClass private: T*data; int length; public: MyArrayClass(int l
4、en) length=len; *1* 一 MyArrayClas S() *2* T operator(int i) *3* bool SetElement(int i, T t) *4* if() datai=t; return true; return false; ; int msin() MyArrayclas sobj(5); obj3=1; coutobj SetElement(5, 2) endl; coutobj SetElement(4, 2) endl; return 0; 国家二级 C+机试(操作题)模拟试卷 353答案与解析 一、基本操作题 1 【正确答案】 (1)v
5、irtual Void func()=0; (2)cout“OK”endl; (3)CDerivel*p=(CDerivel*) obj; 【试题解析】 程序中定义了类 CBase、 CDerive1和 CDerive2,类 CDerive1公有派生于类 CBase, CDerive2公有派生于类 CDerive1,在类 CDerive1中定义了虚函数 func0,但是没有给出具体实现,派生类 CDerive2中给出了 func0函数的具体实现,因此 CDerive1类中的 func0函数是纯虚函数。 二、简单应用题 2 【正确答案】 char *p, *q; for(; *s; s+) 在串
6、 s中找符合 条件的字符,然后替换 for(p=s1, q=s2 ; *p ; p+, q+) 让指针 p, q分别指向 s 1和 s 2 if(*p=*s) 如果 s中存在 s l中 p指向的字符 *s=*q; 那么用 q指向的 s2中的字符替换 【试题解析】 (1)该程序功能是将己知字符串 s中所有在字符串 s1中也存在的字符,都用字符串 s2中的对应位置的字符代替。它的解题思路,首先是找到符合替换条件的字符,然后进行替换。 (2)从己给部分源程序的 main主函数开始入手,核心函数 void fun(char*s,char*s1, char*s2)中的 s1, s2参数为要替换的字符串, s为要被替换的字符串。 三、综合应用题 3 【正确答案】 (1)添加语句: data=new Tlen; (2)添加语句: deletedata; (3)添加语句: return data i; (4)将 “i f()”补充完整为: i f(ilength) 【试题解析】 程序中定义了类模板 MyArrayClass,含有成员变量 length和 data指针,构造函数、析 构函数、重载运算符 “”和 SetElement()函数。构造函数中申请内存空间给 data指针,析构函数中释放内存资源,重载运算符 “”用来获得指定下标的数据, SetElement()用来设置指定下标的数据。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1