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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 489及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,该工程中包含程序文件main cpp,其中有类 Door(“门 ”)和主函数 main的定义。程序中位于每个 “ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 打开 503号门门是锁着的,打不开。 打开 503号门的锁锁开了。 打开 503号门门打开了。 打开 503号门门是开着的,无须再开门。 锁上 503号门先关 门门锁上了。 注意:只参改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #includ

2、e iostream using namespace std; class Door int num;门号 bool closed; true表示门关着 bool locked; true表示门锁着 public: Door(int num) ERROR*found* num=this- num; closed=locked=true; bool isClosed( )constreturnclosed; 门关着时返回 true,否则返回 false bool isOpened( )constTel2L1rn!closed; 门开着时返回 true,否则返回 false bool isLock

3、ed( )constreturn locked; 门锁着时返回 true,否则返回 false bool isunlocked( )constreturn!locked; 门未锁时返回 true,否则返回 false void open( )开门 cout endl “打开 “ num “号门 “; ERROR*found* if(Closed) cout “门是开着的,无须再开门。 “; else if(locked) cout “门是锁着的,打不开。 “; else closed=false; cout “门打开了。 “; void close( )关门 cout endl “关上 “ n

4、um “号门 “; if(closed) tout “门是关着 的,无须再关门。 “; else closed=true; cout “门关上了。 “; ERROR*found* void lock( )const锁门 cout; endl “锁上 num “号门 “; if(locked) cout “门是锁着的,无须再锁门。 “; else if(!closed) cout “先关门 “; closed=true; locked=true; cout; “门锁上了。 “; void unlock( )开锁 cout; endl “开 “ num “号门的锁 “ ; if(!locked)

5、cout “门没有上锁,无须再开锁。 “; else locked=false; tout “锁开了。 “; ; int main( ) Door door(503); door open( ); door unlock( ); door open( ); door open( ); door lock( ); return0; 二、简单应用题 2 请打开考生文件夹下的解 决方案文件 proj2,其中定义了 Employee类和 Manager类。 Employee用于表示某公司的雇员,其属性包括姓名 (name)和工作部分 (dept)。Manager是 Employee的公有派生类,用于表

6、示雇员中的经理。除了姓名和工作部分之外, Manager的属性还包括级别 (1evel)。 Employee类的成员函数 print用于输出雇员的信息; Manager类的成员函数 print负责输出经理的信息。请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为: Name: Sally Smith Dept: Sales Level: 2 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 #include iostream #include string using namespace std; class

7、Employee public: Employee(string name, string dept): *found* _ Virtual void print( )const; string dept( )const返回 部门名称 *found* _ virtual Employee( ) private: string name_; string dept_; , class Manager: public Employee public: Manager(string name, stringdept, int level): *found* _ virtual voidprint(

8、)const; private: int level; ; void Employee: print( )const cout “Name: “ name endl; cout “Dept: “ dept endl; void Manager: print( )const *found* _ cout “Level: “ 1evel endl; o int main( ) Employee*emp=new Manager(“Sally Smith“, “Sales“, 2); emp- print( ); delete emp; return0; 三、综合应用题 3 请打开考生文件夹下的解决方

9、案文件 proj3,其中声明 IntSet是一个用于表示正整数集合的类。 IntSet的成员函数 Intersection的功能是求当前集合与另一个集合的交集。请完成成员函数 Intersection。在 main函数中给出了一组测试数据,此时程序的输出应该是: 求交集前: 1 2 3 5 8 10 2 8 9 11 30 56 67 求交集后: 1 2 3 5 8 10 2 8 9 11 30 56 67 2 8 要求: 补充编制的内容写在 “ *333*”与 “ *666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已

10、经编译为obj文件,并且在本程序中调用。 IntSet h #include iostream using namespace std; const int Max=100; C1ass IntSet public: IntSet( ) 构造一个空集合 end=-1; ) IntSet(int a , int size)构造一个包含数组 a中 size个元素的集合 if(size =Max) end=Max-1; else end=size-1; for(int i=0; i =end; i+) elementi=ai; bool IsMemberOf(int a) 判断 a是否为集合中的一个

11、元素 for(int i=0; i =end; i+) if(elementi=a) return true; return false; int GetEnd( )return end; 返回最后一个元素的下标 int GetElement(int i)returnelementi; 返回下标为 i的元素 IntSet Intersection(IntSet&set); 求当前集合与集合 set的交 void Print( ) 输出集合中的所有元素 for(int i=0; i =end; i+) if(i+1) 20=0) cout elementi endl; else cout ele

12、menti ; tout endl; private: int elementMax; int end; ; void writeToFile(constchar*); main cpp #include“IntSet h“ IntSet IntSet: Intersection (IntSet&set) intaMax, size=0; *333* *666* return IntSet(a, size); int main( ) int a =1, 2, 3, 5, 8, 10; int b =2, 8, 9, 11, 30, 56, 67; IntSet set1(a, 6), set2

13、(b, 7), set3; cout “求交集前: “ endl; set1 Print( ); set2 Print( ); set3 Print( ); set3=set1 Intersection(set2); cout endl “求交集后: “ endl; set1 Print( ); set2 Print( ); set3 Print( ); writeToFile(“ “); return0; 国家二级 C+机试(操作题)模拟试卷 489答案与解析 一、基本操作题 1 【正确答案】 (1)this- num=num; (2)if(!closed) (3)void lock( )

14、【试题解析】 (1)主要考查考生对 this指针的掌握,在构造函数中 this指针指向的是当前类,因此要给 num赋值使用语句 this- num=num;完成 (2)主要考查考生对 if语句的掌握,先看类的私有成员中关于 closed的定义: bool closed; true表示门关着。再看下一条语句: cout “门是开着的,无须再开门。 “;。即满足条件时就会输出:门是开着的,无须再开门。因此 if括号内应该是 !closed。 (3)主要考查考生对 const函数的掌握, lock函数体中存在语句 locked=true即有参数发生改变,因此不能用 const。 二、简单应用题 2

15、【正确答案】 (1)name_(name), dept_(dept) (2)return dept_; (3)Employee(name, dept), level_(level) (4)Employee: print( ); 【试题解析】 (1)主要考查考生对构造函数的掌握,这里使用成员列表初始化法对私有成员初始化。 (2)主要考查考生对成员函数的掌握,题目要求返回部门名称,因此这里是一条返回语句。函数要求返回的类型为 string,因此直接返回 dept_即可。 (3)主要考查考生对构造函数的掌握,因为 Manager类是 Employee类的派生类,因此它的构造函数要先对基类初始化, 应

16、使用成员列表初始化。 (4)主要考查考生对虚函数的掌握,因为 Manager类是 Employee类的派生类,因此它的 print函数可以先调用基类的 print函数,再输出自身要输出的数据,故为Employee: print( );。 三、综合应用题 3 【正确答案】 for(int i=0; i =set GetEnd( ); i+)遍对象 set数组 if(IsMemberOf(set GetElement(i)判断对象 Set数组第 i个值是不是集合中的值,如果是则把它插入到 a中 asize+=set GetEiement(i); 【试题解析】 主要考查考生对数组的掌握,根据 IntSet类的构造函数: IntSet(int a , int size) 构造一个包含数组 a中 size个元素的集合 if(size =Max) end=Max-1; else end=size-1; for(int i=0; i =end; i+) elementi=ai; 可知数组 element用来装载集合, end表示数组长度,因此调用函数 IsMemberOf来判断 set中的元素是否存在 于集合中,如果存在则放入数组 a中。

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