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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 507及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,该工程中包含程序文件main cpp,其中有关 TVSet(“电视机 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 规格: 29英寸,电源:开,频道: 5,音量: 18 规格: 29英寸,电源:关,频道: -1,音量: -1 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include iostream using namespace

2、std; class TVSet “电视机 ”类 const int size; int channel;频道 int volume;音量 bool on;电源开关: true表示开, false表示关 public: ERROR*found* TVSet(int size) this- Size(size); channel=0; volume=15; on=false; int getsize( )constreturnsize; 返回电视机规格 bool isOn( )constreturnon; 返回电源开关状态 返回当前音量,关机情况下返回 -1 int getVolume( )co

3、nstreturnisOn( )?volume: -1; 返回当前频道,关机情况下返回 -1 int getChannel( )constreturn isOn( )?channel: -1; ERROR*found* void turnOnOff( )const将电源在 “开 ”和 “关 ”之间转换 on=!on; void setChannelTo(int chan) 设置频道 (关机情况下无效 ) if(isOn( )&chan =0&chan =99) channel=chan; void setVolumeTo(int vol) 设置音量 (关机情况下无效 ) if(isOn( )&

4、vol =&vol =30) volume=vol; void show_state( ) ERROR*found* cout “规格: “ getSize( ) “英寸 “ “,电源: “ (isOn( )?“开 “: “关 “) “,频道: “ getChannel( ) “,音量: “ getVolume( ) endl; , int main( ) TVSet tv(29); tv turnOnOff( ); tv setChannelTo(5); tv setVolumeTo(18); tv showState( ); tv turnOnOff( ); tv showState( )

5、 return0; 二、简单应用题 2 请打开考生文件夹下的解决方案文件 proj2,此工程包含有一个源程序文件proj2 cpp,其中定义了 Stack类和 ArrayStack类。 Stack是一个用于表示数据结构 “栈 ”的类,栈中的元素是字符型数据。 Stack为抽象类,它只定义了栈的用户接口,如下所示: 公有成员函数功能 push 入栈:在栈顶位置添加一个元素 pop 退栈:取出并返回栈顶元素 ArTayStack是 Stack的派生类,它实现了 Stack定义的接口。 ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员 maxSize表示的是栈的最大容量

6、 top用于记录栈顶的位置。成员函数 push和 pop分别实现具体的入栈和退栈操作。 请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为: a, b, c c, b, a 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 proj2 cpp #include iostream using namespace std; class Stack public: virtual void push(char c)=0; virtual char pop( )=0; ; class ArrayStack: pu

7、blic Stack char*P; int maxSize; int top; public: ArrayStack(int s) top=0; maxSize=s; *found* p=_; ArrayStack( ) *found* _; void push(char c) if(top=maxSize) cerr “Overflow! n“; return; *found* _; top+; char pop( ) if(top=0) cerr “Underflow! n“; return 0; top-; *found* _; ; void f(Stack&sRef) char ch

8、 =a, b, c; cout ch0 “, “ ch1 “, “ ch2 endl; sRef push(ch0); sRef push(ch1); sRef push(ch2); cout sRef pop( ) “, “; cout sRef pop( ) “, “; cout sRef pop( ) endl; int main( ) ArrayStack as(10); f(as); return0; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,其中声明了 SortedList类,是一个用于表示有序数据表的类。其成员函数 insert的功能是将一个数据插入到一个

9、有序表中,使得该数据表仍然保持有序。请编写这个 insert函数。程序的正确输出应为: 插入前: 1, 2, 4, 5, 7, 8, 10 插入 6和 3后: 1, 2, 3, 4, 5, 6, 7, 8, 10 要求: 补充编制的内容写在 “ *333*”与 “ *666*”之间。不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为obj文件,并且在本程序中调用。 SortedList h #include iostream using namespace std; class SortedLi有序数据表类 int len;

10、double*d; public: SortedList(int len, doubledata =NULL); SortedList( )delete d; int length( )constreturnlen; )有序数据表长度 (即元素的个数 ) double getElement (int i)constreturn di; VOid insert(double data); void show( )const;显示有序数据表 ; void writeToFiie(char*, const SortedLiSt&); main cpp #include“SortedList h“ S

11、ortedList: SortedList(int len, double data ): len(len) d=new doublelen; for(int k=0; k len; k+) dk=(data=NULL?0 0: datak); 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

12、 )const 显示有序数据表 for(int i=0; i len-1; i+) cout di “, “; cout dlen-1 endl; int main( ) double s =5, 8, 1, 2, 10, 4, 7); SortedList1ist(7, s); cout “插入前: “ endl; list show( ); list insert(6 0); list insert(3 0); cout “插入 6和 3后: “ endl; list show( ); writeToFile(“ “, list); return0; 国家二级 C+机试(操作题)模拟试卷

13、 507答案与解析 一、基本操作题 1 【正确答案】 (1)TVSet(intsize): size(size) (2)void tumOnOff( ) (3)cout “规格: “ getSize( ) “英寸 “ 【试题解析】 (1)主要考查考生对构造函数的掌握,因为 size是常变量,所以只能用成员初始化列表来初始 size,即 TVSet(int size): size(size)。 (2)主要考查考生对 const函数的掌握,在 turnOnOff函数中,有语句:on=!on;,使得 on的值发生改变,因此该函数不能使用 const。 (3)主要考查考生对输出语句的掌握,下一条语句:

14、 “,电源: “ (isOn( )?“开 “: “关 “), 说明输出语句还没结束,因此不能用 “; ”。 二、简单应用题 2 【正确答案】 (1)new chars (2)delete p (3)ptop=c (4)return ptop 【试题解析】 (1)主要考查的是 ArrayStack类的构造函数,在函数中要为 p申请S个 char型空间,应使用语句 p=new charS;。 (2)主要考查析构函数,使用 delete语句释放指针,即 delete p;。 (3)主要考查 push函数, top表示栈顶元素下标,添加的数据放到栈顶,因此使用语句 ptop=c;。 (4)主要考查 p

15、op函数,输出栈顶数据, top表示栈顶元素下标,因此使用语句return ptop;。 三、综合应用题 3 【正确答案】 for(int i=0; i len; +i)遍历数组 d if(data di)如果 data小于 di len+;数组 d的长度自加 1 double*dd=new doublelen;分配长度为 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=

16、dj;把 dj赋值给 ddj delete d;删 d分配的空间 d=new doublelen;给 d分配长度为 len的空间 for(int index=0; index len; +index)遍历数组 dd从 0到 len dindex=ddindex;地 ddindex赋值给 dindex delete dd;删 dd分配的空间 break;跳出循环 【试题解析】 主要考查考生对插入算法的掌握,题目要求 insert函数的功能是将一个数据插入到一个有序表中,使得该数据表仍保持有序。可以知道数据表 d是一组有序的数组,那么就采取先比较再插入的步骤完成即可。 要注意动态数组 d的长度是确定的,要添加元素,就要重新分配空间。

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