ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:56KB ,
资源ID:1331832      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1331832.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】国家二级C++机试(操作题)模拟试卷334及答案解析.doc)为本站会员(dealItalian200)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】国家二级C++机试(操作题)模拟试卷334及答案解析.doc

1、国家二级 C+机试(操作题)模拟试卷 334及答案解析(总分:10.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 pmj1,此工程包含一个源程序文件proj1epp。文件中将表示数组元素个数的常量 Size定义为 4,并用 int类型对类模板进行了实例化。文件中位于每个注释“ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: 1 2 3 4 注意:模板参数名用 T。只修改注释“ERROR*found*”的下一行语句,不要改动程序中的其他内容。proj1cpp#

2、includeiostreamusing namespace std;将数组元素个数 Size定义为 4ERROR*found*const int Size;templatetypename Tclass MyClasspublic: MyClass(T*P) for(int i=0;iSize;i+) arrayi=pi; void Print();private: T arraySize; ; templatetypename T ERROR*found* void MyClass:Print() for(int i=0;iSize;i+) coutarrayit; int main()

3、int intArraySize=1,2,3,4; ERROR*found* MyClassdoubleobj(intArray); objPrint(); coutendl; return 0; (分数:2.00)_2.请使用 VC6或使用【答题】菜单打开考生文件夹 projl下的工程 projl,此工程中含有一个源程序文件projlcpp。其中位于每个注释“ERROR*found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: Constructor called The value is 10 Max number is 20 Destructor called 注意:只

4、能修改注释“ERROR*found*”的下一行语句,不要改动程序中的其他内容。projlcpp#includeiostreamUSing namespace std;class MyClasspublic:ERROR*found* void MyClass(int i) value=i;cout”Constructorcalled”endl; int Max(int X,int Y)return xY?x:y;)求两个整数的最大值ERROR*found* in=Max(int x,int Y, nt Z=0)求三个整数的最大值 if(xy) return XZ?x:Z; else return

5、 yZ?Y:z; int GetValue()constreturn value; 一 MyClass()cout”Destructorcalled”endl;)Frivate: int value; ; int main() MyClass obj(10);ERROR*found* cout”The value is”value()endl; cout”Max number is”objMax(10,20)endl; return 0; (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,该工程中

6、包含一个程序文件maincpp,其中有坐标点类 point、线段类 Line和三角形类 Triangle的定义,还有 main函数的定义。程序中两点间距离的计算是按公式 实现的,三角形面积的计算是按公式 实现的,其中 (分数:2.00)_4.请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,该工程中含有一个源程序文件pmj2cpp,其中定义了 CharShape类、Triangle 类和 Rectangle类。 CharShape 是一个抽象基类,它表示由字符组成的图形(简称字符图形),纯虚函数 Show用于显示不同字符图形的相同操作接口。Triangle和 Re

7、ctangle是 CharShape的派生类,它们分别用于表示字符三角形和字符矩形,并且都定义了成员函数 Show,用于实现各自的显示操作。程序的正确输出结果应为: * * * * # # # 请阅读程序,分析输出结果,然后根据以下要求在横线处填写适当的代码并删除横线。 (1)将 Triangle类的成员函数 Show补充完整,使字符三角形的显示符合输出结果。 (2)将Rectangle类的成员函数 Show补充完整,使字符矩形的显示符合输出结果。 (3)为类外函数 fun添加合适的形参。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。/proj

8、2cpp#includeiostreamusing namespace std;class CharShapepublic: CharShape(char ch):一 ch(ch); virtual void Show()=0;protected: char ch;组成图形的字符 ; class Triangle:public CharShape public: Triangle(char ch,int r):CharShape(ch),一 rows(r) void Show();private: int rows;行数 ; class Rectangle:publ ic CharShape

9、public: Rectangle(char ch,int r,int c):CharShape(ch),_rows(r),_cols(c) voio Show();private: int rows,cols;行数和列数 ; void Triangle:Show() 输出字符组成的三角形 for(int i=1;i= rows;i+)*found*for(int j=1;j=_;j+) cout ch; coutendl; void Rectangle:Show() 输出字符组成的矩形 *found*for(int i=1;i=_;i+ *found* for(int j=1;j=_;j+)

10、 cout ch;coutendl; *found* 为 fun函数添加形参 VOid fun(_)CSShow();)int main()Triangle tri(*,4);Rectangle rect(#,3,8);fun(tri);fun(rect);return 0;(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)5.请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中声明 IntSet是一个用于表示正整数集合的类。IntSet 的成员函数 Intersection的功能是求当前集合与另一个集合的交集。请完成成员函数 Intersecti

11、on。在 main函数中给出了一组测试数据,此时程序的输出应该是: 求交集前: 1 2 3 5 8 10 2 8 9 11 30 56 67 求交集后: 1 2 3 5 8 10 2 8 9 11 30 56 67 2 8 要求: 补充编制的内容写在“*333*”与“*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 outdat 中。输出函数 writeToFile已经编译为 obj文件,并且在本程序中调用。/Intseth#includeiostreamusing namespace std;const int Max=100;ClaSS IntSetpublic:

12、 IntSet()构造一个空集合 end=一 1; IntSet(int a,int size)构造一个包含数组 a中 size个元素的集合 if(Size=Max) end=Max 一 1; else end=Size一 1; for(int i=0;i=end;i+) elementi=ai; bool IsMemberOf(int a)判断 a是否为集合中的一个元素 for(int i=0;i=end;i+) if(elementi=a) return true; return false; int GetEnd()return end;返回最后一个元素的下标 int GetElemen

13、t(int i)return elementi;)返回下标为 i的元素 IntSet Intersection(IntSetset);求当前集合与集合 set的交 void Print()输出集合中的所有元素 for(int i=0;i=end;i+) if(i+1)20=0) coutelementiendl; else coutelementi; coutend1; private: int elementMax; int end; ; VOid writeToFile(const char*); maincpp #include”IntSeth” IntSet IntSet:Inters

14、ection(IntSet set) int aMax,size=0; /*333* *666* return IntSet(a,size); int main() int a=1,2,3,5,8,i0; int b=2,8,9,11,30,5 6,67); IntSet setl(a,6),set2(b,7),set3; cout”求交集前:”endl; set1Print(); set2Print(); set3Print(); set3=setlIntersection(set2); coutendl”求交集后:”end1; set1Print(); set2Print(); set3P

15、rint(); wtiteToFile(”); return 0; (分数:2.00)_国家二级 C+机试(操作题)模拟试卷 334答案解析(总分:10.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 pmj1,此工程包含一个源程序文件proj1epp。文件中将表示数组元素个数的常量 Size定义为 4,并用 int类型对类模板进行了实例化。文件中位于每个注释“ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: 1 2 3 4 注意:模板参数名用 T。只修改注释

16、“ERROR*found*”的下一行语句,不要改动程序中的其他内容。proj1cpp#includeiostreamusing namespace std;将数组元素个数 Size定义为 4ERROR*found*const int Size;templatetypename Tclass MyClasspublic: MyClass(T*P) for(int i=0;iSize;i+) arrayi=pi; void Print();private: T arraySize; ; templatetypename T ERROR*found* void MyClass:Print() for

17、(int i=0;iSize;i+) coutarrayit; int main() int intArraySize=1,2,3,4; ERROR*found* MyClassdoubleobj(intArray); objPrint(); coutendl; return 0; (分数:2.00)_正确答案:(正确答案:(1)const int Size=4; (2)void MyClassT:Print() (3)MyClassintobj(intArray);)解析:解析:(1)主要考查考生对 const变量的掌握,因为 const变量不能修改,所以在定义的同时必须初始化。 (2)主要

18、考查考生对模板类的成员函数定义的掌握,因为 MyClass类是模板类,所以在定义该函数时要加上模板标识符“T”,即语句 void MyClassT:Print()。 (3)主要考查考生对模板类构造函数的调用的理解,从上一条语句 int intArraySize=1,2,3,4;中可以知道 intArray为 int型,因此定义 obj时要使用int,即 MyClassintobj(intArray);。2.请使用 VC6或使用【答题】菜单打开考生文件夹 projl下的工程 projl,此工程中含有一个源程序文件projlcpp。其中位于每个注释“ERROR*found*”之后的一行语句存在错误

19、。请改正这些错误,使程序的输出结果为: Constructor called The value is 10 Max number is 20 Destructor called 注意:只能修改注释“ERROR*found*”的下一行语句,不要改动程序中的其他内容。projlcpp#includeiostreamUSing namespace std;class MyClasspublic:ERROR*found* void MyClass(int i) value=i;cout”Constructorcalled”endl; int Max(int X,int Y)return xY?x:y

20、;)求两个整数的最大值ERROR*found* in=Max(int x,int Y, nt Z=0)求三个整数的最大值 if(xy) return XZ?x:Z; else return yZ?Y:z; int GetValue()constreturn value; 一 MyClass()cout”Destructorcalled”endl;)Frivate: int value; ; int main() MyClass obj(10);ERROR*found* cout”The value is”value()endl; cout”Max number is”objMax(10,20)

21、endl; return 0; (分数:2.00)_正确答案:(正确答案:(1)MyClass(int i) (2)int Max(int x,int y,int Z) (3)coutY?x:y;中两个形参变量都是 int型,而语句 int Max(int x,int y,int z=0)的前两个形参也都是 int型,第三个形参定义默认值,那么这两个 Max函数在调用时它们的参数个数和参数类型都一样,因为函数重载要求形参类型或形参个数不同,所以要把 int z=0改为 int z,才能构成函数重载。 (3)主要考查成员函数的调用,因为 value是私有成员,所以不能被类外函数直接调用,而且 v

22、alue()的用法也是错误的,可以使用成员函数objGetValue()得到 value的值。二、简单应用题(总题数:2,分数:4.00)3.请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,该工程中包含一个程序文件maincpp,其中有坐标点类 point、线段类 Line和三角形类 Triangle的定义,还有 main函数的定义。程序中两点间距离的计算是按公式 实现的,三角形面积的计算是按公式 实现的,其中 (分数:2.00)_正确答案:(正确答案:(1)const Point class Rectangle:publ ic CharShape public

23、: Rectangle(char ch,int r,int c):CharShape(ch),_rows(r),_cols(c) voio Show();private: int rows,cols;行数和列数 ; void Triangle:Show() 输出字符组成的三角形 for(int i=1;i= rows;i+)*found*for(int j=1;j=_;j+) cout ch; coutendl; void Rectangle:Show() 输出字符组成的矩形 *found*for(int i=1;i=_;i+ *found* for(int j=1;j=_;j+) cout

24、ch;coutendl; *found* 为 fun函数添加形参 VOid fun(_)CSShow();)int main()Triangle tri(*,4);Rectangle rect(#,3,8);fun(tri);fun(rect);return 0;(分数:2.00)_正确答案:(正确答案:(1)i*2 一 1 (2)_rows (3)_cols (4)CharShape for(int i=0;i=end;i+) elementi=ai; bool IsMemberOf(int a)判断 a是否为集合中的一个元素 for(int i=0;i=end;i+) if(element

25、i=a) return true; return false; int GetEnd()return end;返回最后一个元素的下标 int GetElement(int i)return elementi;)返回下标为 i的元素 IntSet Intersection(IntSetset);求当前集合与集合 set的交 void Print()输出集合中的所有元素 for(int i=0;i=end;i+) if(i+1)20=0) coutelementiendl; else coutelementi; coutend1; private: int elementMax; int end;

26、 ; VOid writeToFile(const char*); maincpp #include”IntSeth” IntSet IntSet:Intersection(IntSet set) int aMax,size=0; /*333* *666* return IntSet(a,size); int main() int a=1,2,3,5,8,i0; int b=2,8,9,11,30,5 6,67); IntSet setl(a,6),set2(b,7),set3; cout”求交集前:”endl; set1Print(); set2Print(); set3Print(); s

27、et3=setlIntersection(set2); coutendl”求交集后:”end1; set1Print(); set2Print(); set3Print(); wtiteToFile(”); return 0; (分数:2.00)_正确答案:(正确答案:for(int i=0;i=setGetEnd();i+ +) 遍对象 set数组 if (IsMemberOf(setGetElement (i) 判断对象 set数组第 i个值是不是集合中的值,如果是则把它插入到 a中 asize+ =setGetElement (i);)解析:解析:主要考查考生对数组的掌握,根据 IntSet类的构造函数: IntSet(int a,int size) 构造一个包含数组 a中 size个元素的集合 if(size=Max) end=Max 一 1; else end=size 一 1; for(int i=0;i=end;i+) elementi=ai; 可知数组 element用来装载集合,end 表示数组长度,因此调用函数 IsMemberOf来判断 set中的元素是否存在于集合中,如果存在则放入数组 a中。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1