2012年计算机二级C++第六套上机模拟试题及答案解析

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

本文导航
  • 第1页:一、改错题
  • 第2页:二、简单应用题
  • 第3页:三、综合应用题

  三、综合应用题

  使用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)是队列的标准的删除操作,注意它们的操作方式和先判断后操作的原则。

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答