首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹proj2下的工程proj2,其中有元素类Element和队列类Queue的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为: 3 8 5 0 5 0 7 注意:只
使用VC6打开考生文件夹proj2下的工程proj2,其中有元素类Element和队列类Queue的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为: 3 8 5 0 5 0 7 注意:只
admin
2017-02-18
55
问题
使用VC6打开考生文件夹proj2下的工程proj2,其中有元素类Element和队列类Queue的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为:
3 8 5 0
5 0 7
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容。
#include
#include
#include
using namespace std;
#define MaxLength 100
class Element{ //“元素”类
public:
int n;
Element(int i=0):n(i){}
};
class Queue{ //“队列”类
Element*element;//指向存储元素的数组的指针
int tail; //队尾元素的下标
public:
Queue():element(new Element[100]),tail(-1){}
~Queue(){ dclcte[]element;}
void push(Element ele);//在队列尾端添加一个元素
Element pop();//在队列首端删除一个元素,返回被删元素
Element front()const{return element[0];} //返回队首元素,但不从队列中删除该元素
//**********found**********
int size()const{return(__________);} //返回元素个数
void show()const; //显示集合中所有元素
};
void Queue::push(Element ele){
if(tail==MaxLength-1)return;//空间满,不做任何处理
//**********found**********
___________;
}
Element Queue::pop(){
if(size()==0)exit(1);//队列空,不做任何处理
Element tmp=element[0];
for(int i=0;i
element
=element[i+1];
//**********found**********
____________;
return tmp;
}
void Queue::show()const{
//**********found**********
for(___________)
cout<
.n<<’’:
cout<
}
int main(){
Queue q;
q.push(3);
q.push(8);
q.push(5);
q.push(0);
q.show();
q.pop();
q.pop();
q.push(7);
q.show();
return 0;
}
选项
答案
(1)tail+1 (2)element[++tail]=ele (3)tail-- (4)int i=0;i<=tail;i++
解析
题意定义了Element类,表示队列中的元素,它包含一个成员n,表示元素的值;定义了Queue类,表示队列,它包含两个成员:element是动态分配的一个数组,每个元素都是Element类型;tail表示队列尾部的下标值,指向element数组的最后一个元素,当数组为空时,tail的值为-1,所以初始化为-1;另外Queue类还定义了若干成员函数:构造函数为element数组动态分配100个元素空间,初始化tail为-1;析构函数释放element;push()函数向队列中添加一个新元素ele,即将形参ele存放到数组尾部,并将tail自增1;pop()函数将element数组的第一个元素(下标为0)从数组中删除(采用移动后续所有元素的方式),并作为函数返回值返回;fmnt()甬数返回队列首元素;size()函数返回当前element数组的元素个数;show()函数将element数组中的元素的n值输出,由上面的分析,补充代码如下:
(1)size()函数返回element数组的元素个数,tail的值是element数组的最后一个元素的下标,所以返回tail+l即可。
(2)push()函数将参数ele插入到队列的尾部,即将ele保存到element数组下标为(tail+1)的位置:ele.ment[++tail] =ele;
(3)p叩()函数将element数组的首元素保存到tmp变量中,然后遍历element数组,将下标从1开始的元素逐个赋给前一个元素,再把tail的值自减1,tajl--;
(4)show()函数需要遍历element数组,然后将元素的n值输出,遍历下标的变量需要定义为i,i初值从0开始,直到i等于最后一个元素的下标,即tail。int i=0;i<=tail;i++
转载请注明原文地址:https://www.kaotiyun.com/show/aIAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
关于read()函数的下列描述中,正确的是()。
在C++中,打开一个文件,就是将这个文件与一个()建立关联,关闭一个文件,就是取消这种关联。
已知枚举类型定义语句为:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};则下列说中错误的是()。
下面程序的输出结果是【】。#include<iostream.h>voidmain(){inta[6]={1,2,3,4,5,6};for(inti=0;i<5;i++)
C++中封装性、继承性和【】是面向对象思想的主要特征。
数据模型按不同应用层次分成3种类型,它们是概念数据模型、【】和物理数据模型。
每个C++程序中都必须有且仅有一个
在C++语言中,封装是借助于什么达到的?
开发一个C++语言程序的步骤通常包括编辑、【】、链接、运行和调试。
下面有关重载函数的描述中正确的是
随机试题
下列各项中,导致企业期间费用增加的有()。
______isconsideredtobethebest-knownEnglishdramatistsinceWilliamShakespeare.
以下有关C1说法正确的有
女,左下后牙反复起脓包1年,检查:左下发现牙本质龋,牙髓活力测验无反应,颊侧牙龈有瘘道。X线示根尖呈喇叭样开口,根尖周不规则透影区约4mm×6mm,云雾状,边界不清。诊断为慢性根尖周炎,拟行根管治疗,上橡皮障后,开髓进入髓腔,牙髓坏死,味臭。根管预备后
A.显于风关B.达于气关C.达于命关D.透关射甲E.未超风关病情凶险者,指纹的表现是()
甲、乙、丙、丁设立了宏达有限责任公司。甲以建设用地使用权认购出资500万元;乙以商标专用权认购出资600万元;丙以现金认购出资1000万元,但约定在公司成立2年内予以缴清;丁以一幅古画认购出资500万元。在公司的经营过程中,因资金紧张向A银行贷款500万元
甲公司向银行贷款1000万元,乙公司和丙公司向银行分别出具担保函:“在甲公司不按时偿还1000万元本息时,本公司承担保证责任。”关于乙公司和丙公司对银行的保证债务,下列哪一表述是正确的?(2011年卷三10题)
关于经济发展与金融深化的关系的说法,正确的是()。
Euthanasiaisapracticeofmercifullyendingaperson’slifeinorderto______thepersonfromanincurablediseaseandintolera
Justlikechildren,deeroftencrossBritishroadstogettotheotherside.Butthecostisthedeer’slife.Atnight,【S1】____
最新回复
(
0
)