三、综合应用题
使用VC6打开考生文件夹下的工程kt11_3。此工程包含一个kt11_3.cpp,其中定义了类queue,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)完成类queue的无参数的构造函数的定义,要求把数据成员bl和el都初始化为0,同时输出queueinitialized。请在注释“//**1**”之后添加适当的语句。
(2)完成类queue的成员函数qput(intj)的定义,它的功能是把新的元素加入队列,过程是先依据bl的值判断数组是否已经满了,如果是就输出queueisfull,否则bl自加一,并且把参数j的值存入bl指向的数组元素中,请在注释“//**2**”之后添加适当的语句。
(3)完成类queue的成员函数qget()的定义,它的功能是把队列开头的元素提取出队列,并返回该值,过程是先比较el和bl的值判
断队列是否已空,如果是就输出queueisempty,否则el自加一,并且把el指向的数组元素返回,请在注释“//**3**”之后添加适当的语句。
程序输出结果如下:
queueinitialized
queueinitialized
3311
4422
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件kt11_3.cpp清单如下:
#include classqueue { intq[100]; intbl,el; public: queue(); voidqput(intj); intqget(); }; queue::queue() { //**1** } voidqueue::qput(intj) { //**2** { cout<<"queueisfull/n"; return; } bl++; q[bl]=j; } intqueue::qget() { //**3** { cout<<"queueisempty/n"; return0; } el++; returnq[el]; } voidmain() { queueaa,bb; aa.qput(11); bb.qput(22); aa.qput(33); bb.qput(44); cout< cout< 【参考答案】 (1)bl=el=0; cout<<"queue initialized/n"; (2)if(bl==100) (3)if(el==bl) 【试题解析】 主要考查对于具体的一个队列类的掌握,对列是一种特殊的存储结构,应使用先进先出原则。题目中bl和el分别指向队列的开头和结尾,其中(2)是队列的标准插入操作,(3)是队列的标准的删除操作,注意它们的操作方式和先判断后操作的原则。
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。