下列程序段的执行结果为()。includeusing namespace std;class example{int n;public:下列程序段的执行结果为( )。 #include<iostream> using namespace std; class example{ int n; public: example(int i){n=i;} void add(){s+=n;} static int s; void pr(){ cout<<s<<endl; } }; int example::s=0;

题目
下列程序段的执行结果为()。includeusing namespace std;class example{int n;public:

下列程序段的执行结果为( )。 #include<iostream> using namespace std; class example{ int n; public: example(int i){n=i;} void add(){s+=n;} static int s; void pr(){ cout<<s<<endl; } }; int example::s=0; int fuc(char *x); int main(){ example x(2),y(3),z(4); x. add(); y. add(); z.pr(); return 0; }

A.2

B.3

C.5

D.6


相似考题
更多“下列程序段的执行结果为()。#include<iostream>using namespace std;class example{int n;public: ”相关问题
  • 第1题:

    以下程序的执行结果为______。include using namespace std; class base { public: vir

    以下程序的执行结果为______。

    include<iostream>

    using namespace std;

    class base

    public:

    virtual void who()

    cout<<"base class"<<endl;

    };

    class derivel:public base

    public:

    void who()

    cout<<"d


    正确答案:base class derivel class derive2 class
    base class derivel class derive2 class

  • 第2题:

    有如下程序: include using namespace std; class Test { public

    有如下程序: #include<iostream> using namespace std; class Test { public: Test(){n+=2;} ~Test(){n-=3;} static int getNum(){return n;} private: static int n; }; int Tesl::n=1 int main() { Test*p=new Test; delete p; cout<<"n="<<Tes::tgetNum()<<endl; return 0; } 执行后的输出结果是

    A.n=0

    B.n=1

    C.n=2

    D.n=3


    正确答案:A
    解析:本题考查构造函数和析构函数的调用。类的静态成员和成员函数是类属,不依赖于对象实例存在。

  • 第3题:

    有如下程序: include using namespace std; class BASE { public

    有如下程序: #include<iostream> using namespace std; class BASE { public: ~BASE(){cout<<"BASE";} }; class DERIVED:public BASE { public: ~DERIVED(){cout<<"DERIVED";} }; int main(){DERIVEDx;retum 0;} 执行后的输出结果是

    A.BASE

    B.DERIVED

    C.BASEDERIVED

    D.DERIVEDBASE


    正确答案:D
    解析:本题考查基类析构函数和派生类析构函数的调用次序。

  • 第4题:

    下列程序的输出结果为2,请将程序补充完整。 include using namespace std; class Basc

    下列程序的输出结果为2,请将程序补充完整。

    include<iostream>

    using namespace std;

    class Basc

    {

    public:

    【 】void fun(){cout<<1;}

    };

    class Dcrived:public Base

    {

    public:

    void fun(){cout<<2;}

    };

    int main()

    {

    Base*p=new Derived;

    p->fun();

    delete p;

    return 0;

    }


    正确答案:virtual
    virtual 解析:利用虚函数实现多态。

  • 第5题:

    有如下程序:include using namespace std;class BASE{public:~BASE(){cout<<"BASE";}

    有如下程序: #include <iostream> using namespace std; class BASE{ public: ~BASE(){cout<<"BASE";} }; class DERIVED:public BASE{ public: ~DERIVED(){cout<<"DERIVED";} }; int main(){DERIVED x;return 0;} 执行后的输出结果是

    A.BASE

    B.DERIVED

    C.BASEDERIVED

    D.DERIVEDBASE


    正确答案:D
    解析:本题考核派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当main函数结束时,派生类DERIVED的对象x将被删除,那么派生类DERIVED的析构函数先被调用,输出DERIVED,然后调用基类的析构函数输出BASE。

  • 第6题:

    假定有如下程序:include using namespace std;int s =0;class example{ static int n

    假定有如下程序: #include <iostream> using namespace std; int s =0; class example{ static int n; public: example(int i){ n=i; } static void add( ){ s+=n; } }; int example::n=0; int main( ){ example a(2),b(5); example::add(); cout<<s<<endl; return 0; }程序运行后输出结果为( )。

    A.2

    B.3

    C.7

    D.5


    正确答案:D
    解析:程序中定义一个类example,它包括一个静态数据成员n和一个静态成员函数add(),并在类的构造函数中给类的私有静态数据成员n赋值。在主函数main()中,定义对象a(2)时,通过构造函数使静态数据成员n的值变为2;在定义对象b(5)时,通过构造函数使静态数据成员n=5,再执行example::add()使全局变量s=5。

  • 第7题:

    下面程序的输出结果是【】。 include using namespace std; class A {int a,b; public:A

    下面程序的输出结果是【 】。

    include <iostream>

    using namespace std;

    class A

    {

    int a, b;

    public:

    A()

    {

    a = b = 0;

    }

    A(int aa, int bb ) : a(aA) , b(bB)

    {

    cout <<"a="<<a<<","<<"b="<<b<<",";

    }

    ~A()

    {

    cout<<"D";

    };

    int main ( )

    {

    A x, y(2, 3);

    return 0;

    }


    正确答案:a=2b=3DD
    a=2,b=3DD 解析:本题主要考核构造函数与析构函数的应用。主函数中定义 A类对象x时无输出,定义对象y时调用构造函数输出a=2,b=3。在主函数结束前,对象x,y都调用各自的析构函数输出DD。所以最后答案为a=2,b=3DD。

  • 第8题:

    下面程序执行的结果是【 】 include using namespace std; class A{ public: static in

    下面程序执行的结果是【 】

    include<iostream>

    using namespace std;

    class A{

    public:

    static int x;

    A(inty){cout<<x+y;}

    };

    int A::x=2;

    void main(){

    A a(5);

    }


    正确答案:7
    7 解析:程序的静态变量初始化为2,而构造函数招待过程中y变量为初始化为5,故程序执行的结果为7。

  • 第9题:

    有如下程序: include using namespace std; class Sac{ int n; public: Sac():n(4){co

    有如下程序:

    include<iostream>

    using namespace std;

    class Sac{

    int n;

    public:

    Sac():n(4){cout<<n;}

    Sac(int k):n(k){cout<<n;}

    ~Sac(){cont<<n+n;}

    };

    int main(){

    Sac s1,*s2;

    s2=new Sac(3);

    delete s2;

    return 0;

    }

    运行时的输出结果是______。


    正确答案:4368
    4368

  • 第10题:

    有以下程序:include using namespace std;class A{public: virtual void show() {cout

    有以下程序:

    include <iostream>

    using namespace std;

    class A

    {

    public:

    virtual void show()

    {

    cout<<"A";

    }

    };

    class B : public A

    {

    public:

    void show()

    {

    cout << "B";

    }

    };

    void display( A * obj )

    {

    obj-> show();

    }

    int main ( )

    {

    A demol;

    B demo2;

    display( & demol );

    display( & demo2 );

    return 0;

    }

    执行后的输出结果为【 】。


    正确答案:AB
    AB 解析:本题考核赋值兼容原则以及派生与继承的应用。题中函数display()形参类型为类A,执行语句“display(&demo1);”则输出A。执行语句“display(&dem02);”时,由于show()函数为虚函数,所以调用类B中show()函数,输出B。所以最后结果为AB。

  • 第11题:

    有下列程序:includeusing namespace std;class TestClass{int a;public:TestClass(in

    有下列程序: #include<iostream> using namespace std; class TestClass { int a; public: TestClass(int x)<a=x;} void show(){cout<<a;} }; class TestClass1:publicTestClass { int b; public: TestCla

    A.5

    B.1

    C.0

    D.2


    正确答案:D
    解析: TestClass为TestClass1的基类,在主函数main中定义TestClass对象b,*p。TestClass1对象d,p指向d,调用其show函数。“TestClass1(int i):TestClass(i+1),b(i){}”语句中的TestClass类参数为2,所以show输出2。

  • 第12题:

    有如下程序:include using namespace std;class A{public:A(){cout<<"A";}};class B

    有如下程序: #include <iostream> using namespace std; class A { public: A(){cout<<"A";} }; class B {public:B(){cout<<"B";} }; class C:public A { B b; public:C(){cout<<"C";} }; int main(){C obj;return 0;} 执行后的输出结果是( )。

    A.CBA

    B.BAC

    C.ACB

    D.ABC


    正确答案:D

  • 第13题:

    程序的输出结果是【 】。 include using namespace std; class A{ public: A(){a=b=2;}

    程序的输出结果是【 】。

    include <iostream>

    using namespace std;

    class A{

    public:

    A(){a=b=2;}

    A(int i,int j){a=i;b=j;}

    void display(){cout<<a<<b;}

    private:

    int a,b;

    };

    void main(){

    A m,n(4,8);

    m.display();

    n.display();

    }


    正确答案:2248
    2248 解析:m对象使用和默认的构造函数,其a与b变量的值均为2;而n变量使用4和8来初始化程序的变量,a,b的值为4和8,依次输出的结果为2248。

  • 第14题:

    有如下程序: include using namespace std; class A { public:

    有如下程序: #include<iostream> using namespace std; class A { public: A(){cout<<"A";} }; class B<public:B(){cout<<"B";)); class C:public A { B b; public: C(){cout<<"C";} }; int main(){Cobj;retum 0;} 执行后的输出结果是

    A.CBA

    B.BAC

    C.ACB

    D.ABC


    正确答案:D
    解析:本题考查基类构造函数,数据成员构造函数的调用次序。系统首先要通过派生类的构造函数调用基类的构造函数,对基类成员初始化:然后对派生类中新增的成员初始化。

  • 第15题:

    有如下程序: include using namespace std; class AA { int n;

    有如下程序: #include<iostream> using namespace std; class AA { int n; public: AA(int k);n(k){} intget(){return n;} int get()const{return n+1;} }; int main() { AA a(5); const AA b(6); cout<<a.get()<<b.get(); return 0; } 执行后的输出结果是

    A.55

    B.57

    C.75

    D.77


    正确答案:B
    解析:本题考查const对象。一个const对象只允许被声明为const的方法函数引用。

  • 第16题:

    有以下程序:include using namespace std; class Base { public: Base() { K=0; } int

    有以下程序:

    include<iostream>

    using namespace std;

    class Base

    {

    public:

    Base()

    {

    K=0;

    }

    int x;

    };

    class Derivedl:virtual public Base

    {

    public:

    Derivedl()

    {

    x=10;

    }

    };

    class Derived2:virtua1 public Base


    正确答案:20。
    20。 解析: 本题中,虽然Derived1和Derived2由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份拷贝,不论在类Derived1中修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obi;”时,就会先调用虚基类Base的构造函数,使得x=0,然后执行类Derived1的构造函数使得x=10,再执行类Derived2的构造函数,使得x=20。最后输出x的值为20。

  • 第17题:

    以下程序的执行结果是 ( )。include using namespace std;class sample{private: int

    以下程序的执行结果是 ( )。 #include <iostream> using namespace std; class sample { private: int x; public: sample (int A) { x=a; } friend double square(sample s); }; double square(sample s) {

    A.20

    B.30

    C.900

    D.400


    正确答案:C
    解析:本题考核友元函数的应用。程序中函数square()是类sample的一个友元函数,它可以直接访问类sample的所有成员。它的功能是返回类sample的私有数据成员x的平方。所以程序的执行结果是:900。注意:友元函数不是类的成员函数,在类外定义时不要加上类名及其作用域运算符(::)。友元函数的调用与一般函数的调用的方式和原理一致,可以在程序的任何地方调用它。

  • 第18题:

    有如下程序: include using namespace std; class PARENT { public: PARENT() { cout

    有如下程序:

    include <iostream>

    using namespace std;

    class PARENT

    {

    public:

    PARENT() { cout <<"PARENT"; }

    };

    class SON : public PARENT

    {

    public:

    SON() {cout << "SON"; }

    };

    int main()

    {

    SON son;

    PARENT *p;

    p = &son;

    return 0;

    }

    执行上面程序的输出是______。


    正确答案:PARENTSON
    PARENTSON 解析:此题考查的是派生类的构造。主函数开始在定义SON类的对象son时,会先执行PARENT类的构造函数再执行SON类的构造函数,输出 “PAKENTSON”;接下来的语句定义PARENT和让指针p指向son对象,都并未创建任何对象,所以不会调用构造函数。故最终的输出结果是:PARENTSON。

  • 第19题:

    有如下程序:include using namespace std;class AA {int n;public:AA(int k):n(k) {}

    有如下程序:#include <iostream>using namespace std;class AA { int n;public: AA(int k):n(k) {} int get(){return n;} int get()const { return n+1; }};int main(){ AAa(5); const AA b(6); cout<<a. get()<<b. get(); return ();}执行后的输出结果是( )。

    A.55

    B.57

    C.75

    D.77


    正确答案:B

  • 第20题:

    有以下程序:include using namespace std;int s=0;class sample{ static int n;publi

    有以下程序: #include <iostream> using namespace std; int s=0; class sample { static int n; public: sample (int i) { n=i; } static void add() { s+=n; } }; int sample::n=0;

    A.2

    B.5

    C.7

    D.3


    正确答案:B
    解析:程序中定义对象a(2)时,通过构造函数使静态数据成员n=2,在定义对象 b(5)时,通过构造函数使静态数据成员n=5(覆盖了前面n=2),再执行“sample::add();”使全局变量s=5。注意:本题程序中尽管代码中静态数据成员n的初始化语句“int sample::n=0;”没有意义(因为各对象中的n值由变量i赋给),但不能省略,否则会出现编译错误。

  • 第21题:

    有如下程序:include using namespace std;int s=0;class sample { static int n;publ

    有如下程序: #include <iostream> using namespace std; int s=0; class sample { static int n; public: sample(int i) { n=i; } static void add() { s+=n; } };

    A.2

    B.5

    C.7

    D.3


    正确答案:B
    解析:本题考核静态数据成员和静态成员函数的应用。程序中定义一个类sample,它包括一个静态数据成员n和一个静态成员函数add,并在类的构造函数中给类私有静态数据成员n赋值。在主函数main中,定义对象a(2)时,通过构造函数使静态数据成员n的值变为2,在定义对象b(5)时,通过构造函数使静态数据成员n=5(覆盖了前面的n=2),再执行sample::add()使全局变量s=5。

  • 第22题:

    有下列程序:includeUsing namespace std;Class Amount{ int amount;public; Amount(i

    有下列程序: #include<iostream> Using namespace std; Class Amount{ int amount; public; Amount(int n=O):amount(n){} Int getAmount()const{return amount;} Amount &operator+=(AmountA) {

    A.*this

    B.this

    C.&amount

    D.amount


    正确答案:D
    解析: 此题考查的是“+”运算符重载和this指针。语句amount+=a.amount;实现3和7的求和,得到amount=10,要使程序的输出结果为10,需要把amount的值作为函数的返回值,所以横线处应填入amot。

  • 第23题:

    下面程序输出的结果是( )。 include using namespace std; class A{

    下面程序输出的结果是( )。 #include<iostream> using namespace std; class A{ int X; public: A(int x):x(++x){} ~A(){cout<<x;} }; class B:public A{ int y; public: B(int y):A(y),y(y){} ~B(){cout<<y;}; }; void main(){ B b(3); }

    A.34

    B.43

    C.33

    D.44


    正确答案:A
    解析:对象创建的次序为:先基类,后派生类;析构时,先派生类,后基类。