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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级C++机试(操作题)模拟试卷505及答案与解析.doc

1、国家二级 C+机试(操作题)模拟试卷 505及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,此工程中含有一个源程序文件proj1 cpp。其中位于每个注释 “ ERROR*found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: Constructor called The value is10 Max number is20 Destructor called 注意:只能修改注释 “ ERROR*found*”的下一行语句,不 要改动程序中的其他内容。 proj1 cpp #include iostream using namespace s

2、td; class MyClasS public: ERROR*found* void MyClass(int i) value=i; cout “Constructor called “ endl; int Max(int x, int y)return x y?x: y; 求两个整数的最大值 ERROR*found* int Max(int x, int y, int z=0) 求三个整数的最大值 if(x y) return x z?x: z; elSe return y z?y: z; int GetValue( )constreturnvalue; MyClass( )cout “D

3、estructor called “ endl; private: int value; ; int main( ) MyClass obj(10); ERROR*found* cout “The value is“ value( ) endl; cout “Max number is“ obj Max(10, 20) endl; return0; 二、简单应用题 2 请打开考生文件夹下的解决方案文件 pmj2,其中在编辑窗口内显示的主程序文件中定义有类 XBase和 XDerived,以及主函数 main。程序文本中位于每行 “*found*下面的一行内有一处或多处下划线标记,请在每个下划线

4、标记处填写合适的内容,并 删除掉下划线标记。经修改后运行程序,得到的输出结果为: s=25 #include iostream using namespace std: class XBase private: int mem1, mem2; public: *found* XBase(int m1=0, int m2=0): mem1(m1), _ *found* virtual int_ ; *found* class XDerivred: _ private: int mem3; public: XDerired( ): XBase( ), mem3(0) *found* XDerire

5、d(int m1, int m2, int m3): _ int sum( )return XBase: sum( )+mere3; ; void main( ) XDerived b(3, 4, 5); XBase a(6, 7), *pb=&b; int s=pb- sum( )+a sum( ); cout “s=“ s endl; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,其中包含了类 Integers和主函数main的定义。一个 Integers对象就是一个整数的集合,其中包含 0个或多个可重复的整数。成员函数 add的作用是将一个元素添加到集合中,成员函数

6、remove的作用是从集合中删除指定的元素 (如果集合中存在该元素 ),成员函数 sort的作用是将集合中的整数按升序进行排序。请编写这个 sort函数。此程序的正确输出结果应为: 5 28 2 4 5 3 2 75 27 66 31 5 28 2 4 5 3 2 75 27 66 31 6 5 28 2 4 5 3 2 75 27 66 31 6 19 5 28 4 5 3 2 75 27 66 31 6 19 5 28 4 5 3 2 75 27 66 31 6 19 4 2 3 4 4 5 5 6 19 27 28 31 66 75 要求: 补充编制的内容写在 “ *333*”与 “ *

7、666*”之间。不得修改程序的其他部分。 注意:相关文件包括 : main cpp、 Integers h。 程序最后调用 writeToFile函数,使用另一组不同的测试数据,将不同的运行结果输出到文件 out dat中。输出函数 writeToFile已经编译为 obj文件。 Integers h #ifndef INTEGERS #define INTEGERS #include iostream using namespace std; const int MAXELEMENTS=100; 集合最多可拥有的元素个数 class Integers int elemMAXELEMENTS;

8、 用于存放集合元素的数组 int counter; 用于记录集合中元素个数的计数器 public: Integers( ): counter(0) 创建一个空集合 Integers(int data , int size); 利用数组提供的数据创建一个整数集合 VOid add(int element); 添加一个元素到集合中 void remove(int element); 删除集合中指定的元素 int getCount( )constreturncounter; 返回集合中元素的个数 int getElement(int i)constreturn elemi; 返回集合中指定的元素 v

9、oid sort( ); 将集合中的整数按由小到大的次序进行排序 void show( )const; 显示集合中的全部元素 ; void writeTOFile(const char*path); #endif main cpp #include“Integers h“ #include iomanip Integers: Integers(int data , int size): counter(0)for(inti=0; i size; i+) add(datai); void Integers: add(int element) if(counter MAXELEMENTS) ele

10、mcounter+ =element; void Integers: remove(int element) int j; for(j=counter-1; j =0; j-) if(elemj=element) break; for(int i=j; i counter-1; i+) elemi=elemi+1; counter-; void Integers: sort( ) *333* *666* void Integers: show( )const for(int i=0; i getCount( ); i+) cout; seLw(4) getElemerit; (i); tout

11、; endl; int main( ) int d =5, 28, 2, 4, 5, 3, 2, 75, 27, 66, 31; Integers s(d, 11); s show( ); s add(6); S ShOW( ); s add(19); s show( ); s remove(2); s show( ); s add(4); s show( ); s sort( ); s show( ); writeToFile(“ “); return0; 国家二级 C+机试(操作题)模拟试卷 505答 案与解析 一、基本操作题 1 【正确答案】 (1)MyClass(int i) (2)i

12、nt Max(int x, int y, int z) (3)cout “The value is“ obj GetValue( ) endl: 【试题解析】 (1)考查构造函数,构造函数前不加 void或其他任何类型名,直接使用 MyClass(int i)即可。 (2)主要考查函数重载,在 int Max(int x, int y)return x y?x: y; 中两个形参变量都是 int型,而语句 int Max(int x, int y, int z=0)的前两个形参也都是 int型,第三个形参定义默认值,那么这两个 Max函数在调用时它们的参数个数和参数类型都一样,因为函数重载要求

13、形参类型或形参个数不同,所以要把 int z=0改为 int z,才能构成函数重载。 (3)主要考查成员函数的调用,因为 value是私有成员,所以不能被类外函数直接调用,而且 value( )的用法也是错误的,可以使用成员函数 obj GetValue( )得到value的值。 二、简单应用题 2 【正确答案】 (1)ment2(m2) (2)sum( )return mem1+mem2; (3)public XBase (4)XBase(m1, m2), mem3(m3) 【试题解析】 (1)题意要求使用 m1和 m2初始化数据成员 mem1和 mem2,同mem1的初始化一样,需要在成员

14、初始化列表中完成 mem2的初始化。 (2)sum函数的定义需要返回 mem1和 mem2之和。 (3)XDerired公有继承 xBase类,在继承列表中使用 public。 (4)在成员初始化列表中初始化基类成员时,需要调用基类的构造函数,初始化mem3时,可以直接 初始化。 三、综合应用题 3 【正确答案】 for(inti=0; 1 counter; i+)遍历数组 elem for(int j=counter-1; j i; j-)从最后一位到 i到前一位遍历 elem if(elemi elemj) 如果 elemi大于 elemj,则两值替换 in ttemp=elemi;定义整形变量 temp并赋值为 elemi; elemi=elemj;给 elemi赋值 elemi elemj=temp;给 elemj赋值 temp 【试题解析】 主要考查考生对排序算法的掌握,要排序的数组为 elem,元素个数为 counter,在这里使用下标 i和 j进行比较,当 elemi elemj时,数组元素通过中间变量 temp进行交换。

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