欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:497575       资源大小:32.50KB        全文页数:6页
    • 资源格式: DOC        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [计算机类试卷]国家二级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即为整除。


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开