题库 题库

【简答题】

请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含有一个源程序文件proj2.cpp,其中定义了Stack类和ArrayStack类。
Stack是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack为抽象类,它只定义了栈的用户接口,如下所示:
公有成员函数 功能
push 入栈:在栈顶位置添加一个元素
pop 退栈:取出并返回栈顶元素
ArrayStack是Stack的派生类,它实现了Stack定义的接口。ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员maxSize表示的是栈的最大容量,top用于记录栈顶的位置。成员函数push和pop分别实现具体的入栈和退栈操作。
请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为:
a,b,C
C,b,a
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****料found****”。
//proj2.cpp
#include
using namespacc std;
class Stack{
public:
virtual void push(char C)=0;
virtual char pop()=0;
};
class ArrayStack:public Stack{
char*P;
int maxSizc;
int top;
public:
ArravStack(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[]={‘a’,‘b’,‘c’};
cout<<CH[0]<<”,”<<CH[1]<<”,”<<CH[2]<
sRef.push(oh[0]);sRef.push(ch[1]);sRef.push(ch[2]);
cout<<SREF.POP()<
cout<<SREF.POP()<
cout<<SREF.POP()<
}
int main()
{
ArrayStack as(10);
f(as):
return 0:
}

参考答案

(1)IlEw ChAr[s]
(2)DElEtE[]P
(3)P[top]=E
(4)rEturn P[top]

相关试题

单选题 下面描述中错误的是( )。 查看答案
单选题 c++语言类体系中,不能被派生类继承的有( )。 查看答案
单选题 在满足实体完整性约束的条件下( )。 查看答案
单选题 语句ofstream f(”SALARY.DAT”,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALA-RY.DAT并与之连接,并且( )。 查看答案
单选题 下列叙述中正确的是( )。 查看答案
单选题 下列选项中属于面向对象设计方法主要特征的是( )。 查看答案
单选题 算法的空间复杂度是指( )。 查看答案
单选题 下列有关类继承的叙述中,错误的是( )。 查看答案
单选题 下列符号中可以用做C++标识符的是( )。 查看答案
单选题 有如下程序:
#include
using namespace std;
classBase{
public:
void fun(){
__________________
cout<<”Base::fun”<<ENDL;}
};
class Derived:public Base{
public:
voidfun(){
cout<<”Derived::fun”<
}
};
int main(){
Derived d;
A fun();
return 0;
}
已知其执行后的输出结果为:
Base::fun
Derived::fun
则程序中下画线处应填入的语句是(  )。
查看答案
单选题 下列程序的运行结果为(  )。
#include int i=0;
class A{ public: A(){i++;}
};
void main() {
A a,b[3],*C; C=b;
cout<<I<
}
查看答案
单选题 下面关于c+十语言变量的叙述错误的是( )。 查看答案
单选题 下列关于栈叙述正确的是( )。 查看答案
单选题 以下关键字不能用来声明类的访问权限的是(  )。 查看答案
单选题 下列关于运算符重载的描述中,正确的是( )。 查看答案
单选题 在c++语言程序中,对象之间的相互通信通过( )。 查看答案
单选题 有如下函数定义:
void funC(int a,int&B. {a++;b++;}
若执行代码段:
int x=0,Y = 1; funC(X,Y);
则变量x和y的值分别是(  )。
查看答案
单选题 有如下程序:
int x=3:
do{
x-=2;
COU[<
}while(!(--X));
执行这个程序的输出结果是( )。
查看答案
单选题 下列选项,不正确的是( )。 查看答案
单选题 以下各选项组中,均是C++语言关键字的组是( )。 查看答案