有如下程序:includeusing namespace std;classStack{public:Stack (unsigned n=10)有如下程序: #include <iostream.h> using namespace std; class Stack { public: Stack (unsigned n=10):size (n) {rep_=new int [size]; top=0;} Stack (stack&s}: size (s.size) { rep_new int[size]

题目
有如下程序:includeusing namespace std;classStack{public:Stack (unsigned n=10)

有如下程序: #include <iostream.h> using namespace std; class Stack { public: Stack (unsigned n=10):size (n) {rep_=new int [size]; top=0;} Stack (stack&s}: size (s.size) { rep_new int[size]; for (int i=0;i<size;i++ rip_[i]-s.rep_[i]; top=s.top; } ~Stack() {delete[]rep_;} void poush (int a) {rep_[topj=a; top++;} int pep() { --top; return rep_[top];} bool isEmpty() cons5 [return Top ==0;} private: int*rep_; unsigned size, top; }; int main() { Stack s1; for(int i=1;i<5;i++) s1.push(i); Stack s2(s1); for(i=1;i<3;i++} cout<<s2.pop()<<','; s2.push(6); s1.push(7); while(!s2.isEmpty()) cout<<s2.pop()<<','; return 0; } 执行上面程序的输出是

A.4,3,2,1,

B.4,3,6,7,2,1,

C.4,3,6,2,1,

D.1,2,3,4,


相似考题
参考答案和解析
正确答案:C
解析:本题是一个综合应用考题,考核知识点包括类与对象的应用(包括构造函数、拷贝构造函数),循环语句的使用、指针的使用。 分析程序:类Stack的构造函数中默认参数为 10,即构造大小为10的堆栈,成员函数push用于将数据压入堆栈中,pop用于将数据弹出堆栈。主函数main中,先定义了类Stack的对象引,初始大小为10,通过for循环先后将值1,2,3、4压入堆栈内,然后定义对象s2,并用对象s1来初始化,所以对象s2的堆栈大小也为10,同时也已压入数值1、 2、3、4,第二个for循环将4、3弹出并输出,然后将数值6压入s2的堆栈,最后将s2堆栈中所剩下的值全部弹出,即6、2、1。
更多“有如下程序:#include<iostream.h>using namespace std;classStack{public:Stack (unsigned n=10) ”相关问题
  • 第1题:

    有以下程序: include class A { intx; public: A(int a) { x=a;} friend class B;

    有以下程序:

    include<iostream.h>

    class A

    {

    int x;

    public:

    A(int a)

    {

    x=a;

    }

    friend class B;

    }

    class B{

    public:

    void print(A a){

    a. x--;

    cout<<a.x<<end1;

    }

    };

    void main()

    {

    A a(10);

    B b;

    b.print(a) ;

    }

    程序执行后的输出结果是【 】。


    正确答案:9
    9 解析:本题考核友元类的应用。在程序中,类B是类A的友元类,因此,在类B的所有成员函数中均可访问类A的任何成员。在main()中,先定义类A的一个对象a(10)和类B的一个对象b。然后通过对象b调用其成员函数print输出对象a的私有成员x的值减1即9。

  • 第2题:

    有下列程序: include using namespace std; class Stack { public: Stack(unsigned

    有下列程序: #include<iosteram.h> using namespace std; class Stack { public: Stack(unsignedn=10):size(n){rep_=new int [size];top=O;} Stack(Stack&s):size(s.size) { rep_=new int[size]; fo

    A.4,3,2,1,

    B.4,3,6,7,2,1,

    C.4,3,6,2,1,

    D.1,2,3,4,


    正确答案:C
    解析: 此题综合考查了类与对象、循环语句、指针等知识点。在主函数main中,先定义了类Stack的对象s1,通过循环将1、2、3、4压入堆栈内;然后定义对象s2,并用对象s1来初始化,所以s2的大小也是10。第二个循环将4、3弹出并输出,然后将6压入s2的堆栈,然后将s2中剩下的值全部弹出,即6、2、1。

  • 第3题:

    有如下程序:include using namespace std;class Stack{public:Stack(unsigned n=10

    有如下程序: #include <iostream.h> using namespace std; class Stack { public: Stack(unsigned n=10):size(n){rep_=new int [size]; top=0;} Stack(Stack&s): size (s.size) { rep_=new int[size]; for (int i=0;i<size;i++) rep_[i]=s.rep_[i]; top=s.top; } ~Stack(){delete[]rep_;} void push(int a){rep_[top]=a; top++;} int pop(){--top; return rep_[top];} bool isEmpty() const {return top ==0;} private: int*rep_; unsigned size, top; }; int main() { Stack s1; for(int i=1;i<5;i++) sl.push(i); Stack s2(s1); for (int i=1;i<3;i++) cout<<s2.pop()<<','; s2.push(6); s1.push(7); while(!s2.isEmpty()) cout<<s2.pop()<<','; return 0; } 执行上面程序将输出( )。

    A.4,3,2,1,

    B.4,3,6,7,2,1,

    C.4,3,6,2,1,

    D.1,2,3,4,


    正确答案:C
    解析:此题综合考查了类与对象、循环语句、指针等知识点。在主函数main中,先定义了类Stack的对象s1,通过循环将1、2、3、4压入堆栈内;然后定义对象s2,并用对象s1来初始化,所以s2的大小也是10。第二个循环将4、3弹出并输出,然后将6压入s2的堆栈,然后将s2中剩下的值全部弹出,即6、2、1。

  • 第4题:

    有如下程序:includeincludeusing namespace std;class BASE{char c;public

    有如下程序: #include<iostream>#include<iosream> using namespace std; class BASE{ char c; public; BASE(char n):c(n){} virtual ~ BASE(){cout<<c;} }; class DERIVED; public BASE{ char c; public: DERIVED (char n): BASE (n+1)

    A.XY

    B.YX

    C.X

    D.Y


    正确答案:A

  • 第5题:

    有如下程序:include using namespace std;class Stack {public: Stack(unsigned n= 1

    有如下程序: #include <iostream> using namespace std; class Stack { public: Stack(unsigned n= 10):size(n) {rep_=ew int[size]; top=0;} Stack(Stack& s):size(s.size) { rep_=new int[size]; for(int i=0;i<size;i++) rep_[i]=s.rep_[i]; top=s.top; } ~Stack() {delete[]rep_;} void push(int a) {rep_[top]=a; top++;} int pop() {--top;return rep_[top];} bool isEmpty() const {return top==0;} private: int *rep_; unsigned size,top; }; int main() { Stack s1; for(int i= 1;i<5 ;i++) s1. push(i); Stack s2(s1); for(i= 1 ;i<3;i++) cout<<s2.pop()<<','; s2.push(6); si.push(7); while(!s2.isEmpty()) cout<<s2.pop()<<','; return 0; }执行上面程序的输出是______ 。

    A.4,3,2,1,

    B.4,3,6,7,2,1,

    C.4,3,6,2,1,

    D.1,2,3,4,


    正确答案:C
    解析:栈是“先进后出”的数据结构。