使用VC6打开考生文件夹下的工程test26_3。此工程包含一个test26_3.cpp,其中定义了类queue,但该类的定义并不完 整。请按要求完成下列操作,将程序补充完整。 (1)完成类queue的无参数的构造函数的定义,要求把数据成员bl和el

admin2010-02-08  25

问题 使用VC6打开考生文件夹下的工程test26_3。此工程包含一个test26_3.cpp,其中定义了类queue,但该类的定义并不完
整。请按要求完成下列操作,将程序补充完整。
   (1)完成类queue的无参数的构造函数的定义,要求把数据成员bl和el都初始化为0,同时输出queue initialized。请在注释“//**1**”之后添加适当的语句。
   (2)完成类queue的成员函数qput(int j)的定义,它的功能是把新的元素加入队列,过程是先依据bl的值判断数组是否已经满了,如果是就输出queue is full,否则bl自加一,并且把参数j的值存入bl指向的数组元素中,请在注释“//**2**”之后添加适当的语句。
   (3)完成类queue的成员函数qget()的定义,它的功能是把队列开头的元素提取出队列,并返回该值,过程是先比较el和bl的值判断队列是否已空,如果是就输出queue is empty,否则el自加一,并且把el指向的数组元素返回,请在注释“// **3**”之后添加适当的语句。
   程序输出结果如下:
   queue initialized
   queue initialized
   33 11
   44 22
   注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
   源程序文件test26_3.cpp清单如下:
       #include<iostream.h>
       class queue
       {
         int q[100];
         int bl,el;
       public:
         queue(  );
         void qput(int j);
         int qget(  );
       };
       queue::queue(  )
       {
         // **1**
       }
       void queue::qput(int j)
       {
         //  **2**
       {
       cout<<"queue is full\n";
       return;
       }
       bl++;
       q[bl]=j;
       }
       int queue::qget(  )
       {
         //  **3**
       {
       cout<<"queue is empty\n";
       return 0;
       }
       el++;
       return  q[el];
       }
       void main(  )
       {
        queue aa,bb;
        aa.qput(11);
        bb.qput(22);
        aa.qput(33);
        bb.qput(44);
        cout<<aa.qget()<<" "<<aa.qget()<<"\n";
        cout<<bb.qget()<<" "<<bb.qget()<<"\n";
       }

选项

答案(1) bl=el=O; cout<<"queue initialized\n"; (2) if(bl==100) (3) if(el==bl)

解析 主要考查考生对于具体的一个队列类的掌握,对列是一种特殊的存储结构,使用先进先出原则,题目中bl和el分别指向队列的开头和结尾,其中(2)是队列的标准插入操作,  (3)是队列的标准的删除操作,注意它们的操作方式和先判断后操作的原则。
转载请注明原文地址:https://kaotiyun.com/show/T7ID777K
0

最新回复(0)