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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 501及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,其中在编辑窗口内显示的主程序文件中定义有类 ABC和主函数 main。程序文本中位于每行 “ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 21 23 注意:只修改每个 “ ERROR*found*”下面的一行,不要改动程序中的其他任何内容。 #include iostream using namespace std; class ABC public: ERROR*found* ABC( )a=0; b=0; c=0; ABC(

2、int aa, int bb, int cc); void Setab( )+a, +b; int Sum( )return a+b+c; private: int a, b; const int c; ; ABC: ABC(int aa, int bb, int cc): c(cc)a: aa; b=bb; int main( ) ABC x(1, 2, 3), y(4, 5, 6); ABC z, *w=&z; w- Setab( ); ERROR*found* int s1=x Sum( )+y- Sum( ); cout: s1 : ERROR*found* int s2=s1+w S

3、um( ); cout s2 endl; return0; 二、简单应用题 2 请打开考生文件夹下的解决方案文件 proj2,此工程中包含一个源程序文件main cpp,其中有 “房间 ”类 Room及其派生出的 “办 公室 ”类 Office的定义,还有主函数 main的定义。请在程序中 “ *found*”下的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 办公室房间号: 308 办公室长度: 5 6 办公室宽度: 4 8 办公室面积: 26 88 办公室所属部门:会计科 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动 “ *fo

4、und*”。 #1nClude iostream using namespace std; class Room “房间 ”类 int room_no;房间号 double length;房间长度 (m) double width;房间宽度 (m) public: Room(int the_room_no, double the_length, double the_width):room_no(the_room_no), length(the_length), width(the_width) int theRoomNo( )constreturn room_no; 返回房间号 double

5、 theLength( )constreturn length; )返回房间长度 double theWidth( )constreturn width; )返回房间宽度 *found* double theArea( )const_返回房间面积 (矩形面积 ) ; class Office: publicRoom “办公室 ”类 char*depart;所属部门 publiC: Office(int the_room_no, double the_length, double the_width, const char*the_depart) *found* : _ depart=new c

6、harstrlen(the_depart)+1; *found* Strcpy(_); Office( )(delete depart; const char*theDepartment( )constreturn depart; 返回所属部门 ; int main( ) *found* Office_; cout “办公室房间号: “ an_office theRoomNo( ) endl “办公室长度: “ an_office theLength( ) endl “办公室宽度: “ an_office theWidth( ) endl “办公室面积: “ an_office theArea

7、( ) endl “办公室所属部门: “ an_ofrice theDepartment( ) endl; return0; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,其中声明了 ValArray类,该类在内部维护一个动态分配的整型数组。 ValArray类的复制构造函数应实现对象的深层复制。请编写 ValArray类的复制构造函数。在 main函数中给出了一组测试数据,此种情况下程序的输出应该是: ValArray v1=1, 2, 3, 4, 5 ValArray v2=1, 2, 3, 4, 5 要求: 补充编制的内容写在 “ *333*”与 “ *666*”之间

8、,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为boj文件,并且在本程序中调用。 ValArray h #include iostream using namespace std; class ValArray int*v; int size; public: ValArray(const int*p, intn): siZe(n) v=new intsize; for(int i=0; i size; i+) vi=pi; ValArray(const Va2Array&other); ValArray( )(delet

9、e v; void print(ostream&out)const out ; for(int i=0; i size1; i+) out vi “, “; out vsize-1 ; void setArray(int i, intval) vi=val; ; voidwriteToFile(const char*); main cpp #include“ValArray h“ ValArray: ValArray(constValArray&other) *333* *666* int main( ) const int a =1, 2, 3, 4, 5; ValArray v1(a, 5

10、); tout “ValArray v1=“: v1 print(cout); couL endl: ValArray v2(v1); cout “ValArray v2=“; v2 print(cout); tout endl: writeToFile(“ “); return0; 国家二级 C+机试(操作题)模拟试卷 501答案与解析 一、基本操作题 1 【正确答案】 (1)ABC( ): a(0), b(0), c(0) (2)int s1=x Sum( )+y Sum( ); (3)int s2=s1+w- Sum( ): 【试题解析】 (1)主要考查考生对构造函数的掌握情况,根据私有

11、成员的定义:const int c;可知, c为常变量,因此构造函数必须使用成员列表初始化来给 c赋初始值。 (2)主要考查考生对类的指针的掌握情况,根据主函数的第一条语句: ABC x(1,2, 3), y(4, 5, 6);可知, x和 y都是 ABC类,但不是指针,因此它们调用 ABC类的成员函数要使用标识符 “ ”,而不是 “- ”。 (3)主要考查考生对类的指针的掌握情况,根据主函数的第二条语句: ABC z,*w=&z;可知, w是 ABC类的指针,指向 z,因此 w调用 ABC类的 成员函数时要使用标识符 “- ”,而不是 “ ”。 二、简单应用题 2 【正确答案】 (1)ret

12、urn length*width; (2)Room(the_room_no, the_length, the_width) (3)depart, the_depart (4)an_office(308, 5 6, 4 8, ”会计科 ”) 【试题解析】 (1)主要考查考生对成员函数的掌握,题目要求返回房间面积 (矩形面积 )。由此可知空格部分要填写的是一个 return语句,返回房间面积,也就是length*width,因 此可以得出程序 return length*width;。 (2)主要考查考生对派生类的构造函数的掌握,派生类的构造函数要使用成员列表初始法先对基类进行初始化。 (3)考查

13、 strcpy函数,由前一条语句 depart=new charstrlen(the_depart)+1;可知,程序给 depart分配了长度为 the_depart串长加 1的空间,因此要复制字符串the_depart串到 depart,直接填写 strcpy(depart, the_depart)即可。 (4)主要考查考生对类的掌握,题目要求输出的 结果为: 办公室房间号: 308 办公室长度: 5 6 办公室宽度: 4 8 办公室面积: 26 88 办公室所属部门:会计科 由 Office类的构造函数可知要定义的一个 ofrice类的对象为 an_office(308,5 6, 4 8,

14、 “会计科 “)。 三、综合应用题 3 【正确答案】 size=other size; v=newintsize; for(int i=0; i size; i+) setArray(i, other vi); 【试题解析】 主要考查考生对复制构造函数的掌握, ValArray类的复制构造函数应实现对象的深层复制。由 ValArray类的构造函数: valArray(const int*p, int n): size(n) v=new intsize;给 v分配大小为 Size的空间 for(int i=0; i size; i+)遍历 p vi=pi;把 pi赋值给 vi 可知类中 v是动态数组, size表示数组长度,因此要先给 v分配空间为 size,再逐个元素复制以达到对象的深层复制。

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