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

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

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

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

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

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

    2、new intlen; arraySize=len; for(int i=0; i arraySize; i+) arrayi=i+1; MyClass( ) ERROR*found* delete arrayi; void Print( )const for(int i=0; i arraySize; i+) ERROR*found* cin arrayi ; cout end1; private: int*array; int arraysize; ; int main( ) ERROR*found* MyClass obj; obj Print( ); return0; 二、简单应用题

    3、2 请打开考生文件夹下的解决方案文件 proj2,其中定义了 Component类、Composite类和 Leaf类。 Component是抽象 基类, Composite和 Leaf是 Component的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: Leaf Node 注意:只能在横线处填写适当的代码,不要改动 程序中的其他内容,也不要删除或移动 “ *found*”。 #include ioStream using namespace std; class Component public: 声明纯虚函数 print( ) *found*

    4、 _ ; class Composite: public Component public: *found* VOid SetChild(_) m_child=chiid; virtual void print( )const m_chiid- print( ); private: Component*m_chiid; ; class Leaf: public Component public: virtualvoidprint( )const *found* ; int main( ) Leaf node; Composite comp; comp setChiid(&node); Comp

    5、onent*p=&comp: p- print( ); return0; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,其中声明的 CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数 operator=,以实现深层复制。 要求: 补充编制的内容写在 “ *333*”与 “*666*”之间。不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为0bj文件,并且在本程序中调用。 CDeepCopy h #include iostream #include string using names

    6、pace std; class CDeepCopy public: int n;动态数组的元素个数 int*p;动态数组首地址 CDeepCopy(int); CDeepCopy( ); CDeepCopy&operator=(const C DeepCopy&r);赋值运算符函数 ; VOid writeToFile(char*); main cpp #include“CDeepCopy h“ CDeepCopy: CDeepCopy( )delete p; CDeepCopy: CDeepCopy(int k)n=k; p=newintn; 构造函数实现 CDeepCopy&CDeepCo

    7、py: operator=(constCDeepCopy&r) 赋值运算符函数实现 *333* *333* int main( ) CDeepCopy a(2), d(3); a p0=1; d po=666; 对象 a, d数组元素的赋值 CDeepCopyb(3); a p0=88; b=a; 调用赋值运算符函数 cout b p0; 显示内层局部 对象的数组元素 cout d p0; 显示 d数组元素 a p0的值 cout “d fade away; n“; cout a p0; 显示 a数组元素 a p0的值 writeToFile(“ “); return0; 国家二级 C+机试(

    8、操作题)模拟试卷 484答案与解析 一、基本操作题 1 【正确答案】 delete array; cout arrayi ”; MyClass obj(10); 【试题解析】 (1)语法错误,使用 delete语句删 除一个指针时,直接把指针变量的名称放在 delete 后面即可。 (2)考查考生对输入、输出语句的运用。使用 Cc3ut进行数据输出操作,一般格式为: cout Expr;。其中, Expr代表一个表达式, “ ”称为插入运算符,该语句的含义是,将表达式 Expr的值输出到屏幕上。使用 cin进行数据输入操作,一般格式为: cin var;。其中, var代表一个变量, “ ”称

    9、为提取运算符,该语句的含义是,将用户输入的数据保存到 var中。 (3)考查语句的初始化,我们来看 MyClass类的构造函数: MyClasS(int len) array=new intlen; 给数组动态分配空间,大小为 len arraySize=len;赋值 for(int i=0; i arraySize; i+) arrayi=i+1;循环 给数组赋值,从 1到 10 请注意:形参 len没有定义默认值,因此要想使 array动态数组里依次存放 1, 2,3, 4, 5, 6, 7, 8, 9, 10,就是要给 len赋值为 10。 二、简单应用题 2 【正确答案】 (1)vir

    10、tual void print( )const=0; (2)Component*child (3)cout “Leaf Node“ endl; 【试题解析】 (1)主要考查考生对纯虚函数的掌握,题目要求声明纯虚函数print( )。在其派生类中 print( )函数的定义为 virtual void print( )const,由此可知纯虚函数为 virtual void print( )const=0。 (2)主要考查考生对成员函数的掌握,题目要求填写函数 void setChild的形参,由setChild的函数体可知形参为 child,再看类的私有成员 m_child的定义:Compon

    11、ent*m_child;。由此可知形参为: Component*child。 (3)主要考查考生对纯虚函数的掌握,先看主函数的程序: Leaf node; Composite comp; comp setChiid(&node); Component*p=∁ p- print( ); 第一条和第二条语句都是定义语句,第三条语句调用函数 setChild,由 setChild函数的定义可知, comp中的 m_child等于 node,第四条语句定义了个指针 p指向comp的地址,也就 是 node,最后一条语句通过指针 p调用函数 print,也就是调用类 Leaf的函数 print

    12、,因为题目要求输出: Leaf Node,因此在这里添加语句:tout “Leaf Node“ endl;。 三、综合应用题 3 【正确答案】 n=r n;把对象 r字符长度赋值给 n delete p;删除动态数组 p p=new intn;给动态数组 p分配空间为 n for(int i=0; i n; i+)遍历对象 r中的数组 p pi=r pi;把 r pi赋值给 pi return*this;返回被赋值的对象 【试题解析】 主要考查考生对运算符重载的掌握,由注释可知此处要实现赋值运算符函数。要重载的运算符是 “=”,该类的成员是动态数组 p,数组元素个数为n,因此先释放原来的动态数组,再分配空间,然后逐个复制元素即可。


    注意事项

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




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

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

    收起
    展开