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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级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,因此先释放原来的动态数组,再分配空间,然后逐个复制元素即可。

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