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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 289及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1。其中有线段类 Line的定义。程序中位于每个 “ ERROR *found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1 (1, 8), End point 2 (5, 2), length 7 2111。 注意:只修改每个 “ ERROR *found*水 ”下的那一行,不要改动程 序中的其他内容。 #include iostream #include cmath using namespac

2、e std; class Line; double length(Line); class Line 线段类 double x1, y1;线段端点 1 double x2, y2;线段端点 2 public: ERROR *found* Line(double x1, double y1, double x2, double y2)const this x1 x1; this y1 y1; this x2 x2; this y2 y2; double getXl()constreturnx1; double getYl()constreturny1; double getX2()constre

3、turnx2; ) double getY2()constreturny2; ) void show()const cout “End point 1 (“ x1 “, “ y1; cout “), End point 2 (“ x2 “, “ y2; ERROR *found* cout “), length “ length(this) “。 “ end1; ; double length(Line 1) ERROR *found* return sqrt(1 xl 1 x2)* (1 x1 1 x2) (1 y1 1 y2)*(1 y1 1 y2); int main() Line r1

4、(1 0, 8 0, 5 0, 2 0); r1 show(); return 0; 二、简单应用题 2 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2。其中有向量基类 VectorBase、向量类 Vector和零向量类 ZeroVector的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序正确输出结果应为: (1, 2, 3, 4, 5) (0, 0, 0, 0, 0, 0) 注意:只能在横线处填写适当的代码,不要改动程序 中的其他内容,也不要删除或移动 “ *found*”。 #include iostream using namespa

5、ce std; class VectorBase向量基类,一个抽象类 int len; public: VectorBase (int fen): len(len) int length()constreturnlen; ) 向量长度。即向量中元素的个数 virtual double getElement(int i)const 0,取第 i个元素的值 virtual double sum()const 0;求所有元素的和 void show()const显示向量中所有元素 cout “(“; for(int i 0; i length() 1; i ) cout getElement(i)

6、“,“ *found* cout _ “)“ end1;显示最后一个元素 ; class Vector: public VectorBase向量类 double *va1; public: Vector(int len, double v NULL): VectorBase(len) val new doublelen; for(int i 0; i len; i ) vali (v NULL?0 0: v i ); *found* Vector()_; double getElement(int index) constreturn valindex; ) double sum()const

7、 double s 0 0; *found* for(int i 0, i length(); i )_; return s; ; class ZeroVector: public VectorBase零向量类 public: ZeroVector(int len): VectorBase(len) *found* double getElement(int index)const_; double sum()constreturn 0 0; ; int main() VectorBaSe *v; double d 1, 2, 3, 4, 5); V new Vector(5, d); V s

8、how(); delete v; v new ZeroVector(6); v show(); delete v; return 0; 三、综合应用题 3 请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中声明了 SortedList类,是一个用于表示有序数据表的类。其成员函数 insert的功能是将一个数据插入到一个有序表中,使得该数据表仍然保持有序。请编写这个 insert函数。程序的正确输出应为: 插入前: 1, 2, 4, 5, 7, 8, 10 插入 6和 3后: 1, 2, 3, 4, 5, 6, 7, 8, 10 要求 : 补充编制的内容写在 “

9、 *333*”与 “ *666*”之间。不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为 obj文件,并且在本程序中调用。 SortedList h #include iostream using namespace std; class sortedList 有序数据表类 int len; double, *d; public: SortedLiSt(int fen, doubledata NULL); SortedList()deleted; int length()constreturnlen; 有序数据表长度 (即元

10、素的个数 ) double getElement (int i)constreturn di; void insert(double data); void show ()const;显示有序数据表 ; void writeToFile (char *, const sortedLiSt ); main cpp #include“SortedList h“ SortedList SortedLiSt(int len, double data): len(len) d new doublelen; for(int k 0; k len; k ) dk (data NULL?0 0: datak)

11、; for(int i 0; i len 1; i ) int m i; for(int j i; j len; j ) if(dj dm)m j; if(m i) double t dm; dm di; di t; void SortedList insert(double data) *333* *666* void SortedList show()const 显示南序数据表 for(int i 0; i len 1; i ) cout di “, “; cout dlen 1 end1; int main() double s 5, 8, 1, 2, 10, 4, 7); Sorted

12、List list(7, s); cout “插入前: “ end1; list show(); list insert(6 0); list insert(3 0); cout “插入 6和 3后: “ end1; list show(); writeToFile(“, list); return 0; 国家二级 C+机试(操作题)模拟试卷 289答案与解析 一、基本操作题 1 【正确答案】 (1)Line(double x1, double y1, double x2, double y2) (2)eout “), length “ length(*this) “。 “ end1: (3)

13、retum sqrt(1 getXl() 1 getX2() * (1 getX1() 1 getX2() (1 getY1() 1 getY2() * (1 getY1() 1 getY2(); 【试题解析】 (1)主要考查考生对构造函数的掌握,构造函数要给私有成员赋初始值,因此不能使用 const来限制。 (2)主要考查考生对 this指针的掌握,由函数 length的声明 double length(Line);可知, length函数的形参是 Line类,在 void show()eonst函数里,this指针指向的是当前 Line类,因此可以用 *this表示当前 Line类。 (3

14、)主要考查考生对成员函数的掌握, length函数是类外函数,不能直接调用 类的私有成员,因此要通过成员函数取得对应的值。 二、简单应用题 2 【正确答案】 (1)getElement(length() 1) (2)deleteval (3)s vali (4)return 0 0: 【试题解析】 (1)主要考查考生对成员函数的掌握,题目要求显示最后一个元素。前面有纯虚函数 virtual double getElement(int i)const 0,因此可以直接调用getElement函数来取得最后一个元素,注意最后一个元素位置是 Ungth() 1而不是 length()。 (2)主要考

15、查考生对析构函数的掌握,前面定义了类的私有成员 *val,因此析构函数要释放 val,使用 delete语句完成。 (3)主要考查考生对 for循环的掌握,由函数名 double sum()const可知,该函数要求元素之和, for循环语句的作用是遍历整个数组,在此使用语句 s: vali完成程序。 (4)主要考查考生对成员函数的掌握,由该类的注释:零向量类,可以了解到该类的元素都为零,因此无论要取第几个元素都返回 0,由于数据类型为 double,所以为 return0 0。 三、综合应用题 3 【正确答案】 for(int i 0; 1 len; i) 遍历数组 d if(data di

16、) 如果 data小于 di len;数组 d的长度自加 1 double *dd new doublefen; 分配长度为 len空间 for(int k len; k i; k ) 在数组 d中从 k等于 len到 i做遍历 ddk dk 1; 把 dk 1赋值给 ddk ddi data; 把 data赋值给 ddi for(int j 0; j i, j ) 把数组 d从 0到 i做遍历 ddj dj; 把 dj赋值给 ddj deleted;删 d分配的空间 d new doublelen; 给 d分配长度为 len的空间 for(int index 0; index len; index) 遍历数组 dd从 0到 len dindex ddindex; 地 ddindex赋值给 dindex deletedd; 删 dd分配的空间 break;跳出循环

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