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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]C++程序设计练习试卷1及答案与解析.doc

1、C+程序设计练习试卷 1及答案与解析 0 阅读下列说明和 C+代码,回答问题。 说明 已知下列程序运行时的输出应为: 1:1 1:1 1:1 C+程序 01 #include iostream 02 using namespace std; 03 class stick 04 protect; 05 _ ; 06 Stock(int n, int pr=1) 07 shares=n; share_val=pr; 08 ; 09 void stock( ) ; 10 public: 11 /成员函数 12 void output( ) 13 _ shares “:“ share val endl

2、; 14 15 private: 16 /成员变量 17 int shares; 18 int share_val; 19 ; 20 21 void main( ) 22 Stock a(1); a. output( ); 23 Stock b; b. output( ); 24 Stock C=Stock( ); c.output( ); 25 请补齐上述代码中的空缺 (1)和 (2)。 1 _ _ 2 类 Stock的定义中有两处错误,请指出错误所在行号并给出该行修改后的完整结果。 3 指出 该代码是否存在内存泄漏。 4 阅读以下说明和 C+代码,填补空缺。 说明 C+标准模板库中提供了

3、vector模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空问为 std。vector模板类的部分方法说明如表 12-3所示。 表 12-3 vector模板类的部分方法C+代码 #include iostream #include vector using namespace _ ; typedef vector _ INTZECTOR; const int ARRAY_SIZE=6; void ShowVector(INTVECTOR int main( ) INTVECTOR theVector; /初始化 theVector,将 theVector的元素依次设置为 0至

4、 5 for (int cEachItem=0; cEachItem ARRAY_SIZE; cEachItem+) theVector. push_back( _ ); ShowVector(theVector); /依次输出 theVector中的 元素 theVector. erase(theVector. begin( )+3); ShowVector(theVector); void ShowVector(INTVECTOR return; INTVECTOR: iterator _ ; for(theIterator = theVector.begin( ); theIterato

5、r != theVector.end( ); theIterator+) cout *theIterator; if(theIterator ! =thevector. end( )-1)cout “,“; cout endl; 该程序运行后的输出结果为: 0, 1 , 2, 3, 4, 5 _ 5 阅读下列说明、图和 C+代码,填补空缺。 说明 已知对某载客车辆 (Car)进行类建模,如图 12-2所示,其中类 Engine表示发动机引擎,类 Wheel表示车轮,类Body表示车身,类 Driver表示司机,类 Passenger表示乘客。const int _ =7; /定义最多载客数 c

6、onst int MAX_WHEELS=5; /定义最多轮胎数 class Body /此处代码省略 ); /车身类 class Passenger /此处代码省略 ; /乘客类 Class Wheel /此处代码省略 ; /车轮类 Class Driver /司机类 public: string name; /表示第几路公交车司机 Driver(string driverName): marne( _ ); /构造函数 ; class Engine /引擎类 public: string engineNo; /引擎编号 Engine(string engineNo) _ - engineNo

7、=engineNo; /构造函数 ; Class Car /汽车类 protected: Engine *engine; Driver *driver; Body body; Wheel *wheelsMAX_WHEELS; Passenger *passengersMAX_PASSENGERS; public: Car(Driver *driver)( /构造函数 this- driver=driver; engine=new Engine(“TX653 6型号引擎 “); for(int index=0; index MAX_WHEELS; index+) wheelsindex=new

8、Wheel( ); for(int index=0; index passengersindex=NULL; virtual -Car( ) /析构函数 for (int index=0; index MAX_WHEELS; index+) delete wheelsindex; delete _ ; int getPassengerNumber( ) /获取车上乘客数量 /此处代码省略 void getonpassenger(Passenger *apassenger ) /乘客上车 /此处代码省略 void run( ) /开车 if(driver=NULL)cout “司机尚未上车 !“

9、; return; /此处代码省略 ; void main( ) Driver driver(“第五路公交车司机 “); Car car( _ ); Passenger passengersMAX_PASSENGERS; for(int index=0; index MAX_PASSENGERS; index+) /乘客上车处理 car. getOnPasSenger( car. run( ); 5 阅读下列说明、图和 C+代码,回答问题。 说明 已知四个类之间的关系如图12-3所示,分别对每个类的方法进行编号,例如, Shape的 perimeter( )方法为 1号,表示为 “1:peri

10、meter( )”, Rectangle类的 perimeter( ) 2号,表示为“2:perimeter( )”,依此类推,其中,每个类的 perimeter方法都为虚函数且方法签名相同。 C+代码 Triangle *tr=new Triangle( ); Square *sq=new Square( ); Shape *sh=tr; 6 关于上述 C+代码中 sh和 tr的以下叙述中,哪两个是正确的 (写出编号 )? sh和 tr分别引用同一个对象; sh和 tr分别引用同一类型的不同的对象; sh和 tr分别引用不同类型的不同对象; sh和 tr分别引用同一个对象的不同复制; sh和

11、 tr所引用的内存空间是相同的。 7 写出下面消息对应的方法编号 (如果该消息错误或者没有对应的方法调用,请填写 “无 ”)。 tr- height( ) 8 sh- perimeter( ) 9 sq- height( ) 10 sq- perimeter( ) 11 sh- height( ) 12 tr- perimeter( ) 13 不考虑内存释放问题,下列赋值语句中哪两个是合法的 (写出合法赋值语句的编号 ) sq=sh; sh=tr; tr=sq; sq=tr; sh=sq。 C+程序设计练习试卷 1答案与解析 【知识模块】 C+程序设计 1 【正确答案】 Stock( ):sh

12、ares(1),share_val(1)或 Stock( ):share_val(1),shares(1)。 Cout 【知识模块】 C+程序设计 2 【正确答案】 第 4行,修改为: public: 第 9行,修改为: Stock( ) 【知识模块】 C+程序设计 3 【正确答案】 不存在内存泄漏 【试题解析】 由题中程序可知类 Stock有默认的构造函数,且该构造函数将初始化类中一些成员变量,所以 (1)处应该为 Stock的构造函数。成员函数 output用于输出成员变量的值,所以 (2)处应为 cout。对于 问题 2由于类至少有一个公共的构造函数,所以第 4行的 protect应该改

13、为 public,而析构函数不能有返回值,所以第 9行应该去掉 void。对于 问题 3main函数中类的使用没有通过 new操作符生成 Stock类的对象,所以不存在内存泄漏 【知识模块】 C+程序设计 4 【正确答案】 std int cEachItem theIterator 0, 1, 2, 4, 5 【试题解析】 本题考查的是 C+语言的基本应用。在使用 C+标准库中的对象时,要引入标准的命名空间,空 (1)处应为 std,空 (2)处是用来指定 vector对象的类型,此处应为 int,空 (3)处是将循环变量的值存入 theVector中,所以应为cEachItem,空 (4)处

14、代码主要是循环输出 theVector对象的内容,因此应为定义迭代器变量 theIterator。程序开始会输出 0, 1, 2, 3, 4, 5,再次输出时则为 0,1, 2, 4, 5。 【知识模块】 C+程序设计 5 【正确答案】 MAX_PASSENGERS driverName this engine &driver 【试题解析】 根据类图 描述,分析可得:一辆汽车可以载 0 7名乘客,一辆汽车可以被一个或者多个司机驾驶,并且一辆汽车有 4 5个轮胎,一个引擎和一个车框架。程序代码中空 (1)处表示一辆汽车最多载客数目,从后面的程序代码分析可得,应该填写 MAX_PASSENGERS

15、。空 (2)处用于构造一个司机对象,需要司机名称 driverName作为参数。空 (3)处主要设置车的假设司机,由于参数的名称与成员变量的名称相同,因此需要加上 this以示区别。空 (4)处所对应代码段是汽车 car的析构函数,与 car的构造函数相对应,需要将构造函数中创建的引擎和 车轮删除,所以空 (4)处应为删除引擎。空 (5)处用于产生一个汽车对象,所以,需要给汽车对象传递合适的参数,构造方法中需要传递一个司机对象,因此应该将 driver对象传递到汽车对象中。 【知识模块】 C+程序设计 【知识模块】 C+程序设计 6 【正确答案】 【知识模块】 C+程序设计 7 【正确答案】 3 【知识模块】 C+程序设计 8 【正确答案】 5 【知识模块】 C+程序设计 9 【正确答案】 无 【知识模块】 C+程序设计 10 【正确答案】 4 【知识模块】 C+程序设计 11 【正确答案】 无 【知识模块】 C+程序设计 12 【正确答案】 5 【知识模块】 C+程序设计 13 【正确答案】 【知识模块】 C+程序设计

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