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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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

2、 MyClasS(int val): value(val) int GetValue( )constreturnvalue; void SetValue(int val); ; ERROR*found* inline void SetValue(int val) value=val; int main( ) MyClass obj(0); obj SetValue(10); ERROR*found* 下列语句功能是输出 obj的成员 value的值 cout “The valme is“ obj value endl; return0; 二、简单应用题 2 请打开考生文件夹下的解决方案文件 p

3、roj2,其中有向量基类 VectorBase、向量类 Vector和零向量类 ZeroVector的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序正确输出结果应为: (1, 2, 3, 4, 5) (0, 0, 0, 0, 0, 0) 注意:只能在横线处填写适当的代码,不要改动 程序中的其他内容,也不要删除或移动 “ *found*”。 #include iostream using namespace std; class VectorBase向量基类,一个抽象类 int len; public: VectorBase(int len): len(len) int le

4、ngth( )constreturnlen; 向量长度,即向量中元素的个数 virtual double getElement(inti)const=0;取第 i个元素的值 virtual double sum( )const= 0;求所有元素和 void show( )const显示向量中所有元素 cout “(“; for(int i=0; i length( )-1; i+) cout getElement(i) “, “; *found* cout _ “)“ endl;显示最后一个元素 ; class Vector: public VectorBase 向量类 double*val;

5、 public: Vector(int len, double v =NULL): VectorBase(len) val=new doublelen; for(int i=0; i len; i+) vali=(v=NULL?0 0: vi); *found* Vector( )_; double getElement(int index) constreturn valindex; double sum( )const double s=0 0; *found* for(int i=0; i length( ); i+) _; return s; ; class ZeroVector: p

6、ublic VectorBase零向量类 public: ZeroVector(int len): VectorBase(len) *found* double getElement(int index)const_; double sum( )constreturn0 0; ; int main( ) VectOrBaSe*v; double d =1, 2, 3, 4, 5; v=new Vector(5, d); v- show( ); defete v; v=new ZeroVector(6); v- show( ); delete v; return0; 三、综合应用题 3 请打开考

7、生文件夹下的解决方案文件 proj3,其中使用友元函数访问类的私有数据成员,求出两个数据成员的大于 1的最小公因子。请编写友员函数 FnFun,使其输出结果为: Common denominator is2 要求:补充编制的内容写在 “ *333*”与 “*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为obj文件,并且在本程序中调用。 proj3 h class FriFunClass int a, b; public: FriFunClass(int i, int j)a=i; b=j; friend i

8、nt FriFun(FriFunClass x);友元函数 , void writeToFile(const char*); proj3 cpp #include iostream using namespace std; #include“prj3 h“ int FriFun(FriFunClass x) *333* 由于函数 FriFun( )是类 FriFunClass的友元函数,所以它可以直接访问 a和 b *666* int main( ) FriFunClass n(10, 20); if(FriFun(n) cout “Common denominatoris“ FriFun(n

9、) “ n“; else cout “No common denominator n“; writeToFile(“ “); return0; 国家二级 C+机试(操 作题)模拟试卷 479答案与解析 一、基本操作题 1 【正确答案】 (1)MyClass(int val): value(val) (2)void MyClass: SetVlue(int val)value=val; (3)cout “The value is“ obj GetValue( ) endl: 【试题解析】 (1)考查构造函数,定义构造函数时不能使用 void,直接使用MyClass(int val)即可。 (2)

10、主要考查成员函数定义,类的成员函数定义时要使用前缀 MyClass,而 inline是内联函数的关键字,在此是错误的,应该删掉 inline并在函数名前加上前缀MyClass,即 void MyClass: SetVMue(int val)value=val; 。 (3)考查成员函数调用, value是私有成员,在主函数中不能直接调用 value,可以使用成员函数 GetValue( )来得到 value的值。 二、简单应用题 2 【正确答案】 (1)getElement(length( )-1) (2)delete val (3)s+=vali (4)return0 0; 【试题解析】 (1

11、)主要考查考生对成员函数的掌握,题目要求显示最后一个元素。前面有纯虚函数 virtual double getElement(int i)const=0,因此可以直接调用getElement函数来取得最后一个元素,注意最后一个元素位置是 Length( )-1而不是 Length( )。 (2)主要考查考生对析构函数的掌握,前面定义了类的私有成员 *val,因此析构函数要释放 val,使用 delete语句完成。 (3)主要考查考生对 for循环的掌握,由函数名 double sum( )const可知,该函数要求元素之和, for循环语句的作用是遍历整个数组,在此使用语句 s+=vali完成

12、程序。 (4)主要考查考生对成员函数的掌握,由该类的注释:零向量类,可以了解到该类的元素都为零,因此无论要取第几个元素都返回 0,由于数据类型为 double,所以为 return0 0。 三、综合应用题 3 【正确答案】 int min=x a x b?x a: x b;此处为取出 x a与 x b中的最小值 for(int i=2; i =min; i+)从 i到 min遍历数组 if(x a i=0&x b i=0) 如 i能同时整除 x a来的 x b,则仅回 i return i; return-1; 【试题解析】 主要考查考生对友元函数的掌握情况,友元函数可以访问类的私有数据成员,题目要求函数求出两个数据成员的大于 1的最小公因子,从 2开始往上算,因此要同时可以被两个私有成员整除,这里用取余符号完成,取余为 0即为整除。

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