itgle.com

下列程序的输出结果为()。includeclass TestClass{public:TestClass (){val++;}stat下列程序的输出结果为( )。 #include<iostream.h> class TestClass { public: TestClass (){val++;} static int val; }; int TestClass::val=0; void main() { TestClass cs1; cout<<cs1.val<<""; TestClass cs2; T

题目
下列程序的输出结果为()。includeclass TestClass{public:TestClass (){val++;}stat

下列程序的输出结果为( )。 #include<iostream.h> class TestClass { public: TestClass (){val++;} static int val; }; int TestClass::val=0; void main() { TestClass cs1; cout<<cs1.val<<""; TestClass cs2; TestClass cs3,cs4; cout<<cs2.val<<endl; }

A.03

B.13

C.14

D.24


相似考题
更多“下列程序的输出结果为()。#include<iostream.h>class TestClass{public:TestClass (){val++;}stat ”相关问题
  • 第1题:

    若有如下程序:includeusing namespace std;class TestClass{public:void who(){cout<

    若有如下程序: #include<iostream> using namespace std; class TestClass { public: void who(){cout<<“TestClass”<<endl;} }; class TestClassl:public TestClass { public: void who(){cout<<“TestClassl”<<endl; int main() { TestC

    A.TestClassl

    B.TestClass

    C.0

    D.无输出


    正确答案:A
    解析: 程序中的TestClass1为TestClass的派生类,主函数main中定义TestClass对象*p,TestClass1对象obj1,然后p引用obj1,执行p->who()则是调用基类中的who函数,输出TestClass。

  • 第2题:

    执行这个程序的输出结果是(); include using namespace std; class TestClass1 { publ

    执行这个程序的输出结果是( );

    include<iostream>

    using namespace std;

    class TestClass1

    {

    public:

    void fun1(){cout<<"TestClass1\n";}

    virtual void fun2(){cout<<"TestClass1\n";}

    };

    class TestClass2:public TestClass1

    {

    public:

    void fun1(){cout<<"TestClass2\n";}

    void fun2(){cout<<"TestClass2\n";}

    };

    void f(TestClass1&b){b.fun1();b.fun2();}

    int main()

    {

    TestClass2 obj;

    f(obj);

    return 0;

    }


    正确答案:TestClass1 TcstClass2
    TestClass1 TcstClass2 解析:主函数中首先定义TestClass2对象obj,然后执行“f(obj);”。“void f(TestClass1& b){b.fun1();b.fun2();}”语句中fun中参数为TestClass1类型的对象b,其中调用fun1()和fun2()。基类 TestClass1中的fun2()为虚函数,所以派生类中的fun2也是虚函数,所以输出为调用TestClass1中的fun1,TestClass2中的fun2。即结果为TestClass1和TestClass2。

  • 第3题:

    下列程序的执行结果是( )。 include include Class TestClass

    下列程序的执行结果是( )。 #include<iostream.h> #include<stdlib.h> Class TestClass { public: int x,y; TestClass(){x=y=0;} TestClass(int a,int b){x=a;y=b;} void disp() { cout<<"x="<<x<<",y="<<y<<end1; } }; void main() { TestClass s1(2,3); s1.disp(); }

    A.x=2,y=2

    B.x=3,y=3

    C.x=2,y=3

    D.x=3,y=2


    正确答案:C
    解析:由主函数入手,定义了类TestClass的对象s1(2,3),当类对象进入其作用域时调用构造函数,构造函数应该是调用具有参数的“TestClass(int a,int b){x=a;y=b;)”。然后引用成员函数disp(),则输出为“cout”x=“x”,y=“yendl;”。

  • 第4题:

    有如下程序:includeusing namespace std;class TestClass1{public:virtual void fun(

    有如下程序: #include<iostream> using namespace std; class TestClass1 { public: virtual void fun(){cout<<"1";} }; class TestClass2: public TestClass1 { public: TestClass2(){cout<<"2";} }; class TestClass3:public TestClass2 { public: virtual void fun(){TestClass2::fun();cout<<"3";} }; int main() { TestClass 1 aa,*p; TestClass2 bb; TestClass3 cc; p=&cc; P->fun(); return 0; } 执行上面程序的输出是( )。

    A.1122

    B.2112

    C.2213

    D.2223


    正确答案:C
    解析:主函数中定义TestClass1的对象aa,*p对象指针,TestClass2的对象bb以及TestClass3的对象cc。p指向cc,TestClass3为TestClass2的派生类,构造函数输出2。TestClass3中fun函数中为TestClass2中的。fun,调用TestClass2的构造函数,输出2。“p->fun();”,TestClass2继承于TestClass1中的fun,所以输出1。然后输出TestClass3中的“cout”3””,即输出3。

  • 第5题:

    有如下程序:includeincludeusing namespace std;class TestClass{public;T

    有如下程序: #include<iostream> #include<iomanip> using namespace std; class TestClass{ public; TestClass (){cout<<'A';} TestClass(char C){cout<<c;) ~TestClass (){cout<<'B';} }; int main(){ TestClass p1,*p2; p2=new TestClass('X'); delete p2; return 0; } 执行这个程序的结果是( )。

    A.ABX

    B.ABXB

    C.AXBB

    D.AXB


    正确答案:C
    解析:在定义对象p1时由系统自动调用构造函数TestClass(),输出字母A;用new创建单个对象TestClass('X')时,要根据参数调用相应的构造函数TestClass(char C),输出字母X;在执行delete时,系统会自动调用析构函数~TestClass(),输出字母B,当对象的生存周期即将结束时系统会自动调用析构函数~TestClass(),输出字母B。

  • 第6题:

    下列程序输出结果为: include using namespace std; class TestClass1 { public: Test

    下列程序输出结果为:

    include<iostream>

    using namespace std;

    class TestClass1

    {

    public:

    TestClass1(){}

    TestClass1(int i)

    {

    x1=i;

    }

    void dispa()

    {

    cout<<"x1="<<x1<<",";

    }

    private:

    int x1;

    };

    class TestClass2:public TestClass1

    {

    public:

    TestClass2(){}

    TestClass2(int i):TestClass1(i+10)

    {

    x2=i;

    }

    void dispb()

    {

    dispa();

    cout<<"x2="<<x2<<endl;

    }

    private:

    int x2;

    };

    int main()

    {

    TestClass2 b(2);

    b.dispb();

    return 0;

    }


    正确答案:x1=12x2=2
    x1=12,x2=2 解析:由主函数main入手,首先定义类TestClass2的对象b,成员数据为2。然后调用dispb函数。在dispb中首先执行dispa函数,TestClass2为TestClass1的派生类,“TestClass2(int i):TestClass1(i+10)”所以TestClass1中的x1=12,dispa输出的结果为x1=12。在TestClass1中x2=2,所以dispb中的输出语句“cout”x2=”x2endl;”,输出x2=2。即答案为“x1=12,x2=2”。

  • 第7题:

    若有以下程序: include using namespace std; class TestClass 1 { public: TestClass

    若有以下程序:

    include<iostream>

    using namespace std;

    class TestClass 1

    {

    public:

    TestClass1()

    {

    X=0;

    }

    int x;

    };

    class TestClass2:virtual public TestClass1

    {

    public:

    TestClass2()

    {

    x=10;

    }

    };

    class TestClass3:virtual public TestClass 1

    {

    public:

    TestClass3()

    {

    x=20;

    }

    };

    class TestClass4:public TestClass2, protected TestClass3

    { };

    int main()

    {

    TestClass4 obj;

    cout<<obj.x<<end1;

    return 0:

    }

    该程序运行后的输出结果是______。


    正确答案:20
    20

  • 第8题:

    有如下程序: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:public TestClass {int b; public: TestClass1(int i):TestClass(i+1),b(i){} voi

    A.5

    B.1

    C.0

    D.2


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

  • 第9题:

    有下列程序:includeusing namespace std;class TestClass{protected:TestClass(){cou

    有下列程序: #include<iostream> using namespace std; class TestClass{ protected: TestClass(){cout<<'x';} TestClass(char c){cout<<c;} }; class TestClassl:public TestClass{ public: TestClassl(char c){cout<<c;}

    A.y

    B.yx

    C.xy

    D.yy


    正确答案:C
    解析: 程序中的类TestClass为基类,TestClass1为TestClass的派生类。由main主函数入手,定义TestClass1类型的对象d1,参数值为y。 TestClass1类继承TestClass,所以主函数中“TestClass1 d('y');”语句首先调用“TestClass1(char c){coutc;}”,然后调用基类中的 “TestClass(){cout《'x';}输出x,最后执行“TestClass(char c){coutc;}”,输出y,即答案为“xy”。

  • 第10题:

    若有如下程序:includeusing namespace std;class TestClass{public:void who() {cout

    若有如下程序: #include<iostream> using namespace std; class TestClass { public: void who() {cout<<"TestClass"<<endl;} }; class TestClass1:public TestClass { public: void who(){cout<<"TestClass1"<<endl;} }; int main() { TestClass *p; TcstClass1 obj1; p=&obj1; p->who(); return 0; } 则该程序运行后的输出结果是( )。

    A.TestClass1

    B.TestClass

    C.0

    D.无输出


    正确答案:A
    解析:程序中的TestClas1为TestClass的派生类,主函数main中定义TestClass对象*p,TestClass1对象obj1,然后p引用obj1,执行p->who()则是调用基类中的who函数,输出TcstClass。

  • 第11题:

    若有以下程序:includeusing namespace std;class TestClass{public:void who(){cout<

    若有以下程序: #include<iostream> using namespace std; class TestClass { public: void who(){cout<<"TestClass"<<endl;} }; class TestClass1:public TestClass { public: void who(){cout<<"TestClass1"<<endl;} }; int main() { TestClass *p; TestClass1 obj1; P=&obj1; P->who(); return 0; 则该程序运行后的输出结果是( )。

    A.TestClass1

    B.TestClass

    C.0

    D.无输出


    正确答案:B

  • 第12题:

    有如下程序: include using namespace std; class TestClass { int a

    有如下程序: #include<iostream> using namespace std; class TestClass { int a; public: TestClass(int x){a=x;} void show(){cout<<a;} }; class TestClass1:public TestClass { int b; public: TestClass1(int i):TestClass(i+1),b(i){} void show(){cout<<b;} }; int main() { TestClass b(5),*p; TestClass1 d(1); p=&d; p->show(); return 0; } 该程序运行后的打印结果是( )。

    A.5

    B.1

    C.0

    D.2


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

  • 第13题:

    有下列程序:include using namespace std; class TestClass1 { public: TestClass1(){

    有下列程序:

    include<iostream>

    using namespace std;

    class TestClass1

    {

    public:

    TestClass1(){cout<<"A";}

    };

    class TestClass2<public:TestClass2(){cout<<"B";}

    };

    class TestClass3:public TestClass1{

    TestClass2 b;


    正确答案:ABC
    ABC 解析: 主函数中定义TestClass3对象。obj,其中TestClass3继承于TestClass1,先初始化基类构造函数,所以输出A。然后在TestClass3中定义TestClass2对象b,输出B,最后派生类的构造函数输出C。所答案为ABC。

  • 第14题:

    在下列的程序的横线处填上适当的语句,使该程序的输出为12。 includeusing namespace st

    在下列的程序的横线处填上适当的语句,使该程序的输出为12。

    include<iostream>

    using namespace std;

    class TestClass

    {

    public:

    int a,b;

    TestClass(int i,int j)

    {

    a=i;

    b=j;

    }

    };

    class TestClass1:public TestClass

    {

    int a;

    public:

    TestClass1(int x):TestClass(x,x+1){}

    void show()

    {

    ______;//输出基类数据成员a的值?

    cout<<b<<endl;

    }

    };

    int main()

    {

    TestClass1 d(1);

    d.show();

    return 0;

    }


    正确答案:coutTestClass::a
    coutTestClass::a 解析:题目中程序TestClass为基类,TestClass1为派生类,在主函数中定义TestClass1对象d(1)。根据题目要求“输出基类数据成员a的值”,基类为TestClass,利用::域运算符取其成员a的值。

  • 第15题:

    有如下程序:includeusing namespace std;class TestClass{private;char c;public;Tes

    有如下程序: #include<iostream> using namespace std; class TestClass { private; char c; public; TestClass (char n):c(n){} ~TestClass () { cout<<c; } }; class TestClass1:public TestClass { Private: char c; public: TestClass1(char n):TestClass (n+1),c(n){} ~TestClass1() { cout<<c; } }; int main() { TestClass1 obj('x'); return 0; } 执行上面的程序输出( )。

    A.xy

    B.yx

    C.x

    D.y


    正确答案:A
    解析:题目中程序TestClass为基类,TestClass1为派生类。在主函数中定义TestClass1对象obj('x'),“TestClass1(charn):TestClass(n+1),c(n){}”,所以先输出x,然后调用基类构造函数,'x'+1='y',所以输出y,即答案为xy。

  • 第16题:

    有如下程序:includeusing namespace std;class TestClass1{public:TestClass1 (){cou

    有如下程序: #include<iostream> using namespace std; class TestClass1 { public: TestClass1 (){cout<<"TestClass1";} ~TestClass1 (){cout<<"~TestClass1";} }; class TestClass2:public TestClass1 { TestClass1 *p; public: Testclass2(){cout<<"TestClass2";p=new TestClass1();} ~TestClass2(){cout<<"~TestClass2";delete p;} ); int main() { TestClass2 obj; return 0; } 执行这个程序的输出结果是( )。

    A.TestClass2TestClass1TestClass1~TestClass1~TestClass2~TestClass1

    B.TestClass1TestClass2TestClass1~TestClass2~TestClass1~TestClass1

    C.TestClass2TestClass1TestClass1~TestClass2~TestClass1~TestClass1

    D.TestClass1TestClass2TestClas1~TestClass1~TestClass2~TestClass1


    正确答案:B
    解析:派生类中构造函数的执行顺序是:先调用基类构造函数,对基类数据成员初始化,然后调用子对象构造函数,对子对象数据成员初始化;最后执行派生类构造函数本身,对派生类数据成员初始化。由主函数main入手,首先定义了一个TestClass2对象obj。其中TestClass2公共继承TestClass1,对象obj可以访问TestClass1中的公有成员函数。TestClass2中定义了一个TestClass1的指针p,给p分配新空间,即指向类TestClass1,输出“TestClass1”。在TestClass2的构造函数中首先输出“TestClass2”,并在TestClass1构造函数中输出“TestClass1”。TestClass2析构函数中输出“~TestClass2”,删除指针p,输出“~TestClass1”。析构TestClass1输出“~TestClass1”。

  • 第17题:

    执行下列程序的输出结果是______: include using namespace std; class TestClass1 {

    执行下列程序的输出结果是______:

    include<iostream>

    using namespace std;

    class TestClass1

    {

    public:

    void fun1(){cout<<"TestClass1\n";}

    virtual void fun2(){cout<<"TestClass1\n";}

    };

    class TestClass2:public TestClass1

    {

    public:

    void fun1(){cout<<"TestClass2\n";}

    void fun2(){cout<<"TestClass2\n";}

    };

    void f(TestClass1&b)<b.fun1();b.fun2();}

    int main()

    {

    TestClass2 obj;

    f(obj);

    return 0;

    }


    正确答案:TestClass1 TestClass2
    TestClass1 TestClass2 解析:主函数中首先定义TestClass2对象obj,然后执行“f(obj);”。“void f(TestClass1& b)(b.fun1);b.fun2();}”语句中fun中参数为TestClass1类型的对象b,其中调用fun1()和fun2()。基类 TestClass1中的fun2()为虚函数,所以派生类中的fun2也是虚函数,所以输出为调用TestClass1中的fun1,TestClass2中的fun2。即结果为TestClass1和TestClass2。

  • 第18题:

    下列程序的执行结果是()。includeincludeclass TestClass{public:intx,y

    下列程序的执行结果是( )。 #include<iostream.h> #include<stdlib.h> class TestClass { public: intx,y; TestClass(){x=y=0;} TestClass(int a,int b){x=a;y=b;} void disp() { cout<<"X"="<<X<<",y="<<y<<endl; }

    A.x=2,y=2

    B.x=3,y=3

    C.x=2,y=3

    D.x=3,y=2


    正确答案:C
    解析: 由主函数入手,定义了类TestClass的对象s1(2,3),当类对象进入其作用域时调用构造函数,构造函数应该是调用具有参数的“TestClass(int a,int b)x=a;y=b;)”。然后引用成员函数disp(),则输出为“cout”x=“x”,y=“yendl;”。即x=2,y=3。

  • 第19题:

    下列程序的输出结果是( )。 include using namespace std; class TestClass

    下列程序的输出结果是( )。 #include<iostream> using namespace std; class TestClass{ static int i; public: TestClass(){i++;} ~TestClass(){i--;} static int getVal(){return i;} }; int TestClass::i=O; void fun(){TestClass ob2;cout<<ob2.getVal();} int main(){ TestClass ob1; fun(); TestClass*ob3=new TestClass;cout<<ob3->getVal(); delete ob3;cout<<TestClass::getVal(); return 0; }

    A.111

    B.121

    C.211

    D.221


    正确答案:D
    解析:由主函数mian入手,首先定义TestClass对象ob1,调用构造函数后,i等于1。“intTestClass::i=0”语句中i首先赋值为0,它是静态函数可以被所有对象引用,当静态成员变量的值改变后,则在各对象中这个数据成员的值都同时改变。主函数中首先调用fun函数,其中又定义了对象ob2,调用getVal;i等于2,输出。主函数“obj*ob3=newTestClass;coutob3->getVal();”动态分配,i等于2,输出。“deleteob3;”析构函数后,i等于1,然后输出1。即221。

  • 第20题:

    下列程序的输出结果是()。 include using namespace std; class TestClass{ static in

    下列程序的输出结果是( )。 #include<iostream> using namespace std; class TestClass{ static int i; public: TestClass(){i++;} ~TestClass(){i--;} static int getVal(){retum i;} }; int TestClass∷i=0; voi

    A.111

    B.121

    C.211

    D.221


    正确答案:D
    解析: 由主函数mian入手,首先定义TestClass对象ob1,调用构造函数后,i等于1。在“int TestClass∷i=0”语句中,i首先被赋值为0,它是静态函数可以被所有对象引用,并且静态成员变量,当它值被改变后,则在各对象中这个数据成员的值都同时改变。主函数中首先调用fun函数,其中又定义了对象ob2,调用gtVal;i等于2,输出。主函数“obj*ob3=newTestClass;coutob3->getVal();”动态分配,i等于2,输出。“delete ob3;”析构函数后,i等于1,

  • 第21题:

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

  • 第22题:

    有如下程序:includeusing namespace std;class TestClass{protected:TestClass(){co

    有如下程序: #include<iost earn> using namespace std; class TestClass{ protected: TestClass(){cout<<'x';} TestClass(char C) {cout<<c;} }; class TestClass1:public TestClass { public: TestClass1(char C) {Cout<<c;) }; int main(){ TestClass1 d1('y'); return 0; } 执行这个程序,屏幕上将显示输出( )。

    A.y

    B.yx

    C.xy

    D.yy


    正确答案:C
    解析:程序中的类TestClass为基类,TestClass1为TestClass的派生类。由main主函数入手,定义TestClass1类型的对象d1,参数值为'y'。TestClass1类继承TestClass,所以主函数中“TestClass1 d1('y');”语句首先调用调用基类中的“TestClass(){cout'x';)”输出x,然后调用“TestClass1(char C) {coutc;}”输出y,即答案为“xy”。

  • 第23题:

    下列程序的输出结果为2,横线处应添加语句()。includeusing namespace std;{public:___

    下列程序的输出结果为2,横线处应添加语句( )。 #include<iostream> using namespace std; { public: ______void fun(){cout<<1;} }; class TestClass2:public TestClass1 { public:void fun(){cout<<2;) }; int main() { TestClass1 *p=new TestClass2; p->fun(); delete p; Teturn 0; }

    A.public

    B.private

    C.virtual

    D.protected


    正确答案:C
    解析:由主函数main入手,定义TestClass1类的指针对象p指向派生类Testclass2。因为基类和派生类中都有fun函数,题目要求输出为2,就是基类对象访问派生类中fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的fun函数声明为virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同名函数自动成为虚函数。