分析下面程序,该程序的运行结果是()。includeclass cmm{public:static int m;cmm(){分析下面程序,该程序的运行结果是( )。 #include<iostream.h> class cmm { public: static int m; cmm() { m++; } cmm(int n) { m=n; } static void testm() { m++; } }; int cmm :: m=0; void main() { cmm A; cmm B(3); A.t

题目
分析下面程序,该程序的运行结果是()。includeclass cmm{public:static int m;cmm(){

分析下面程序,该程序的运行结果是( )。 #include<iostream.h> class cmm { public: static int m; cmm() { m++; } cmm(int n) { m=n; } static void testm() { m++; } }; int cmm :: m=0; void main() { cmm A; cmm B(3); A.testm(); cram :: testm0; cout<<"m="<<B.m<<endl; }

A.m=3

B.m=4

C.m=5

D.m=6


相似考题
更多“分析下面程序,该程序的运行结果是()。#include<iostream.h>class cmm{public:static int m;cmm(){ ”相关问题
  • 第1题:

    下面程序的运行结果是【】。 include using namespace std; class count{ static int n;

    下面程序的运行结果是【 】。

    include <iostream>

    using namespace std;

    class count

    {

    static int n;

    public:

    count()

    {

    n++;

    }

    static int test()

    {

    for(int i=0;i<4;i++)

    n++;

    return n;

    }

    };

    int count::n = O;

    int main()

    {

    cout<<count:: test()<<" ";

    count c1, c2;

    cout<<count:: test()<<endl;

    return 0;

    }


    正确答案:410
    410 解析:本题主要考查C++类中静态数据成员的使用。题目程序首先定义了类count,其内部含有private 类型数据成员static int n;同时含有public 类型构造函数 count()和静态成员函数static int test(),这两个函数的功能分别是为对象申请系统资源并将静态数据成员n加1和将静态数据成员n加4。主函数前,程序将静态数据成员n初始化为0,该数据成员为所有类count 的对象所共有的数据成员;主函数中程序首先执行静态成员函数test() (由于test 声明为 static,因此其调用时无需通过具体对象),其执行过程中,静态数据成员n应该加4变成n:4,因此此处输出为4;此后程序创建对象c1和c2,由于在每次创建过程中都要调用构造函数count(),而每次调用count()函数后,静态数据成员n值都会加1。因此,创建两个对象之后,n值变为n=6:再次执行test()函数后,n的值再次加4,因此变为n=6+4=10。故程序全部执行后,变量n值变为10,而中间程序输出为“410”。

  • 第2题:

    下面这个程序的结果是 include class A { private: int a; public: void seta( ) ;

    下面这个程序的结果是

    #include<iostream.h>

    class A

    {

    private:

    int a;

    public:

    void seta( ) ;int geta( ) ;};

    void A: :seta( )

    { a=1;}

    int A: :geta( )

    { retum a;}

    class B

    { private:

    int a;

    public:

    void seta( ) ;int geta( ) ;};

    void B: :seta( )

    {a=2;}

    int B: :geta( )

    {return a;}

    class C: public A,public B

    { private:

    int b;

    public:

    void display( ) ;};

    void C: :display( )

    { int b=geta( ) ;

    cout < < b;}

    void main( )

    { C c;

    c. seta( ) ;

    c. display( ) ;}

    A.1

    B.2

    C.随机输出1或2

    D.程序有错


    正确答案:D
    解析:在类A中有geta( ) 函数,在类B中也有geta( ) 函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

  • 第3题:

    下面程序的结果是includeclass A{int a;public:A( ) :a(1) {}void showa ( ) {cout

    下面程序的结果是 #include<iostream.h> class A { int a; public: A( ) :a(1) {} void showa ( ) {cout < < a;} }; class B { int a; public: B( ) :a(2) {} void showa( ) {cout < < a;} }; class C: public A, public B { t a; public: C( ) :a(3) {} void showa( ) {cout < < a;} }; void main( ) { C c; c.showa( ) ; }

    A.1

    B.2

    C.3

    D.程序有错误


    正确答案:C
    解析:类A、类B中都有showa( ) 函数,类C继承后再次重写showa( ) 函数就解决了继承的二义性,这时c. showa( ) 函数显示的就是类C中的showa ( ) 的值。

  • 第4题:

    以下程序的执行结果是______。 include class A{ int a: public: void seta(int x) {

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

    include<iostream.h>

    class A

    {

    int a:

    public:

    void seta(int x) {a=x;}

    void showa() {cout<<a<<end1;}

    };

    class B

    {

    int b;

    public:

    void setb(int x) {b=x;}

    void showb(){cout<<b<<end1;}

    };


    正确答案:1 3
    1 3

  • 第5题:

    下面程序的运行结果是includeclass base{protected:int a;public:base( ){cout<<"0

    下面程序的运行结果是 #include<iostream.h> class base{ protected: int a; public: base( ){cout<<"0";} }; class basel:virtual base { public: base1( ){cout<<"1";} }; class base2:virtual base{ public:

    A.123

    B.3120

    C.312

    D.3012


    正确答案:A
    解析:本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

  • 第6题:

    有以下程序: 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。

  • 第7题:

    以下程序的执行结果是______。 include class CSample{ private: int n; static int

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

    include<iostream.h>

    class CSample

    {

    private:

    int n;

    static int k:

    public:

    CSample (int i) {n=i;k++;};

    voiddisp();

    } ;

    void CSample::disp()

    {

    cout <<"n="<<n<<",k="<<k<<endl

    }

    int CSample:


    正确答案:n=10k=3 n-20k=3 n=30k=3
    n=10,k=3 n-20,k=3 n=30,k=3

  • 第8题:

    下列程序的运行结果是()。 include class A { inta; public: A(){a=0:} A(int aa) {

    下列程序的运行结果是( )。 #include<iostream.h> class A { inta; public: A(){a=0:} A(int aa) { a=aa; cout<<a++; } }; void main() { A x,y(2),z(3); cout<<endl; }

    A.0

    B.23

    C.34

    D.25


    正确答案:B

  • 第9题:

    有如下程序: include class x { protected: int a; public:x(){ a=1;} }; class x

    有如下程序: #include <iostream.h> class x { protected: int a; public: x() { a=1; } }; class x1 : virtual public x { public: x1() { a+=1; cout<<a; } }; class x2 : virtual public x { public: x2() { a+=2; cout<<a; } }; class y : public xl,public x2 { public: y() { cout<<a<<end1; } }; int main() { y obj; return O; } 该程序运行后的输出结果是( )。

    A.1

    B.123

    C.242

    D.244


    正确答案:D
    解析:本题程序中引入了虚基类。在主函数main中,执行语句“yobj;”时,先执行虚基类x的构造函数,使a=1;然后执行类x1的构造函数,使a=2,并输出值2;再执行类x2的构造函数,使a=4,并输出值4;最后执行类y的构造函数,输出值4。

  • 第10题:

    下面程序的结果是includeclass A{int a;public:A( ):a(1){}void showa( ){cout<

    下面程序的结果是 #include<iostream.h> class A { int a; public: A( ):a(1){} void showa( ){cout<<a;} }; class B { int a; public: B( ) :a(2) {}

    A.1

    B.2

    C.3

    D.程序有错误


    正确答案:C
    解析:类A,类B,中都有showa()函数,类C继承后再次重写showa()函数就解决了继承的二义性,这时c.showa()函数显示的就是类C中的showa()的值。

  • 第11题:

    下面程序的运行结果为includeclass A{static int n;public: A(){n=1;} A(intnum){n

    下面程序的运行结果为 #include<iostream.h> class A { static int n; public: A(){n=1;} A(intnum){n=num;} void print(){cout <<n;} }; int A∷n=2; void main() { Aa,b(3); a.print(); b.print(); cout <<end1; }

    A.11

    B.13

    C.23

    D.33


    正确答案:D
    解析:本题考查的是静态数据成员的使用,n为类A的静态成员,即为类A的所有对象共有的成员,所以,当对象b把n初始化为3时,对象a的成员n的值也为3(这两个n实际上是同一个)。

  • 第12题:

    下列程序的运行结果是______。 include class Base { public: virtual void func(int

    下列程序的运行结果是______。

    include<iostream.h>

    class Base

    {

    public:

    virtual void func(int i){cout<<"class Base:"<<i<<end1;)

    };

    class Derived: public Base

    {

    public:

    void func(double d){cout<<"class Derived:"<<d<<endl;}

    };

    void main( )

    {

    Base a,*p=a;

    Derived b;

    p=&b;

    (*p).func(3.3);

    }


    正确答案:class Base:3
    class Base:3 解析:题中基类和派生类中有同名函数,但是参数不同。派生关系中,只有在函数类型、函数名和参数个数、参数类型完全相同时,才表现多态性。本题中参数不同,编译器便认为是两个完全不同的函数。通过基类的指针指向派生类对象时,该指针只能访问到派生类中具有多态性的成员函数,而与基类无关的函数是无法通过基类指针来访问的。故调用的是base类的 func函数,系统将3.3强制转化为整型数3。如果将派生类中的func的形参改为int型,则执行的就会是派生类的func函数,此时表现为多态。

  • 第13题:

    下列程序的运行结果是______。 include class test { private: int hum; public: tes

    下列程序的运行结果是______。

    include<iostream.h>

    class test

    {

    private:

    int hum;

    public:

    test( );

    int TEST( ){return num+100;)

    ~test( );

    };

    test::test( ){num=0;)

    test::~test( ){cout<<"Destructor is active"<<endl;)

    void main( )

    {

    test x[3];

    cout<<x[1].TEST( )<<endl;

    }


    正确答案:100 Destructor is active Destructor is active Destructor is active
    100 Destructor is active Destructor is active Destructor is active 解析:本题比较简单,考查考生基本的类的定义,构造函数以及对象数组的概念。

  • 第14题:

    下面程序的运行结果是()。includeclass base{protected:int a;public:base(){cout<<

    下面程序的运行结果是( )。 #include<iostream.h> class base{ protected: int a; public: base(){cout<<“0”;} }; Class basel:Virtual base{ public: basel(){cout<<“1”;} }; Class base2:virtual base{ public: base2(){cout<<“2”;)

    A.0123

    B.3120

    C.0312

    D.3012


    正确答案:A
    解析: 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

  • 第15题:

    下列程序的运行结果是______。include class Base { public: void f(int x){cout<<“B

    下列程序的运行结果是______。

    include<iostream.h>

    class Base

    {

    public:

    void f(int x){cout<<“Base:”<<x<<endl;}

    );

    class Derived:public Base

    {

    public:

    void f(char*str){cout<<“Derived:”<<str<<endl;}

    };

    void main(void)

    {

    Base*pd=ne


    正确答案:Base:97。
    Base:97。 解析: 本题主要考查两个知识点,一是基类指针可以指向派生类对象,并可以访问派生类的所有成员。二是在函数重载中进行隐式类型转换。如pd->f(‘a’);系统到底调用哪个重载函数呢?实参既不是派生类中的形参,也不是基类中f函数的形参类型。此时系统根据就近原则和从高优先级到低优先级的规则尝试隐式转换。单字符更接近整数,故调用的是基类的f函数。

  • 第16题:

    下面这个程序的结果是includeclass A{private:int a;public:void seta( );int geta

    下面这个程序的结果是 #include<iostream.h> class A { private: int a; public: void seta( );int geta( );}; void A::seta( ) { a = 1;} int A::geta( ) {return a;} class

    A.1

    B.2

    C.随机输出1或2

    D.程序有错


    正确答案:D
    解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。

  • 第17题:

    下面程序执行的结果是【 】 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。

  • 第18题:

    下列程序的运行结果是 include class A { int a; public: A( ) {a=0;}A(int aa) {

    下列程序的运行结果是

    #include<iostream.h>

    class A

    {

    int a;

    public:

    A( ) {a=0;}

    A(int aa)

    {

    a=aa;

    cout < < a++;

    }

    };

    void main( )

    A x,y(2) ,z(3) ;

    cout < < endl;

    }

    A.00

    B.23

    C.34

    D.25


    正确答案:B
    解析:本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。

  • 第19题:

    下面程序的结果为includeint c;class A{private:int a;static int b;public:A( ){a

    下面程序的结果为 #include<iostream.h> int c; class A { private: int a; static int b; public: A( ) {a=0;c=0;} void seta( ){a++;} void setb( ){b++;}

    A.1 2 1

    B.1 2 2

    C.1 1 2

    D.2 2 2


    正确答案:B
    解析:C++语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全局变量,b为静态变量,a为普通变量,b和c在类A的对象a1和a2中都自加1。所以b,c为 2,a为1。

  • 第20题:

    下面程序的运行结果为include < iostream.h >class A{ static int n;public:A( ){n=1;}A(int nu

    下面程序的运行结果为 #include < iostream.h > class A { static int n; public: A( ){n=1;} A(int num){ n = num;} void print( ){cout<< n;} }; int A::n=2; void main( ) { A a,b (3); a.print( ); b.print( ); cout<< end1; }

    A.11

    B.13

    C.23

    D.33


    正确答案:D
    解析:本题考查的是静态数据成员的使用,n为类A的静态成员,即为类A的所有对象共有的成员,所以,当对象b把n初始化为3时,对象a的成员n的值也为3(这两个n实际上是同一个)。

  • 第21题:

    下面程序的结果是includeclass A { int a;public: A():a(1){} void showa(){cout<<

    下面程序的结果是 #include<iostream.h> class A { int a; public: A():a(1){} void showa(){cout<<a;} }; class B { int a; public: B():a(2){} void showa(){cout<<a;} }; class C:public A,public B { int a; public: C():a(3) ㈠ voidshowa(){cout<<a;} }; voidmain() { C c; c.showa(); }

    A.1

    B.2

    C.3

    D.程序有错误


    正确答案:C
    解析:类A,类B,中都有showa()函数,类C继承后再次重写showa()函数就解决了继承的二义性,这时c.showa()函数显示的就是类C中的showa()的值。

  • 第22题:

    下面程序的结果是()。includeclass A{int a;public:A():a(1){}void showa(){cout<

    下面程序的结果是( )。 #include<iostream.h> class A { int a; public: A():a(1){} void showa(){cout<<a;} }; Class B { int a; public: B():a(2){} void showa(){cout<<a;} ); class C:public A,public B { int a; pu

    A.1

    B.2

    C.3

    D.程序有错误


    正确答案:C
    解析: 类A,类B,中都有showa()函数,类C继承后再次重写showa()函数就解决了继承的二义性,这时c, showa()函数显示的就是类C中的showa()的值。

  • 第23题:

    下面程序的运行结果是includeclass base{protected: int a;public: base(){cout <<

    下面程序的运行结果是 #include<iostream.h> class base{ protected: int a; public: base(){cout <<"0";} }; class basel:virtual base{ public: basel () {cout <<"1";} }; class base2:virtual base{ public: base2(){cout <<"2";} }; class derived:public basel,public base2{ public: derived(){cout <<"3";} }; void main() { derived obj; cout <<end1; }

    A.123

    B.3120

    C.312

    D.3012


    正确答案:A
    解析:本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。