计算机二级

以下程序的执行结果为______。include class A {public:A(){cout以下程序的执行结果为______。include<iostream.h>class A{public:A(){cout<<“a”;}~A(){cout<<“b”;}};class B:public A{public:B(){cout<<“c”;)~B(){cout<<“d”;}};void main(){B b;}

题目
以下程序的执行结果为______。include class A {public:A(){cout<<“a”;} ~A(){cout<<

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

include<iostream.h>

class A

{public:A(){cout<<“a”;}

~A(){cout<<“b”;}};

class B:public A

{public:

B(){cout<<“c”;)

~B(){cout<<“d”;}};

void main()

{B b;}

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下程序:includeusing namespace std;Class Base{public:Base(){cout<<“BB”;f()

有如下程序: #include<iostream.h> using namespace std; Class Base { public: Base(){cout<<“BB”;f();} void{(){cout<<“BF”;} }; class Derived:public Base { public: Derived(){cout<<“DD”;} void f(){cout<<“Df”;) }; int main

A.BBBfDD

B.BBDfDDDf

C.DD

D.DDBBBf


正确答案:A
解析: 本趣考查的是类的继承和派生。派生类执行构造函数的一般次序为;首先调用基类构造函数,然后调用成员对象的构造函数,最后是派生类构造函数中的内容。题目中定义派生类对象d时,先调用基类Base的构造函数,输出BBBf,然后调用派生类Derived的构造函数,输出DD。

第2题:

下面程序的结果是includeclass A{public: A(){cout<<"construtA"<

下面程序的结果是 #include<iostream.h> class A { public: A(){cout<<"construtA" <<endl;} virtual ~A() {cout << "destructA" <<endl;}}; class B:public A { }; class C:public A { }; class D:public B,public C { }; void main() { Dd;}

A.constructA

B.constructA

C.constmctA

D.constmctA destructA constructA constmctA constructA destructA constructA constructA destructA destructA constructA destructA dest


正确答案:B
解析:类D继承了类C和类B,所以在构造的时候分别构造类B和类C。

第3题:

在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。 include using nam

在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。

include<iostream>

using namespace std;

classA

{

public:

A(){cout<<'A';}

};

class B:______

{

public:

B(){cout<<'B';}

};

class C:______

{

public:C(){cout<<'C';}

};

class D:public B,public C

{

public:D(){cout<<'D';}

};

void main(){D obj;)


正确答案:virtual A或virtual public A或virtual private A或virtual protected A与virtual A或virtual public A或virtual private A或virtual protected A
virtual A或virtual public A或virtual private A或virtual protected A与virtual A或virtual public A或virtual private A或virtual protected A 解析:由于每执行一次A类的构造函数,都将输出一个字符A,输出结果中只有一个A,且第一个输出为A,D继承B,可知必有B继承A。由题中要求C肯定继承某个类,所以,这里的C只能是继承于A,保证输出中只有一个A,A必须为虚基类,所以本题中的空都填virtual A。

第4题:

下面程序的结果是includeclass A{public:A( ){cout<<"construtA"<

下面程序的结果是 #include<iostream.h> class A { public: A( ) {cout<<"construtA"<<endl;} virtual~A( ) {cout<<"destructA"<<endl;}}; class B:public A {}; class C:public A {}; c

A.constructA destructA

B.constructA constructA destructA destructA

C.constructA constructA constructA destructA destructA destructA

D.constructA onstructA constructA constructA destructA destructA destructA destructA


正确答案:B
解析:类D继承了类C和类B,所以在构造的时候分别构造类B和类C。

第5题:

下面程序的运行结果是()。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
解析: 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

第6题:

以下程序的执行结果为______。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

第7题:

在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。 include using

在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。

include <iostream>

using namespace std;

class A{

public:A( ){cout<<'A';}

};

class B: (11) {

public:B( ){cout<<'B';}

{;

class C: (12) {

public:C( ){cout<<'C';}

};

class D:public B,public C{

public:D( ){cout<<'D';}

};

void main( ){

D( );

cout<<endl;

}


正确答案:public A 空格
public A 空格 解析:考查在继承中构造函数的调用顺序,创建派生类对象时依次调用基类的构造函数,最后调用派生类的构造函数。考查在继承中构造函数的调用顺序,创建派生类对象时依次调用基类的构造函数,最后调用派生类的构造函数。

第8题:

下面程序的运行结果是 include class base{ protected: int a; public: base( ) {c

下面程序的运行结果是

#include<iostream.h>

class base{

protected:

int a;

public:

base( ) {cout < < "0";}

};

class base l: virtual base{

public:

base l ( ) {cout < <"1";}

};

class base 2: virtual base{

public:

base2 ( ) {cout < <"2";}

};

class derived: public base 1, public base2{

public:

derived( ) {cout < < "3";}

};

void main( )

{

derive obj;

cout < < endl;

}

A.0123

B.3120

C.0312

D.3012


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

第9题:

下列程序的运行结果是______。 include class A { public: virtual void use( ) {cou

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

include<iostream.h>

class A

{

public:

virtual void use( ) {cout<<"in A\n";}

};

class B:public A

{

public:

virtual void use( ) {cout<<"in B\n";}

};

class C:public B

{

public:

virtual void use( ){cout<<"in C\n";}

};

void main( )

{

A*obj;

bj=new C;

obj->use( );

delete obj;

}


正确答案:in C
in C 解析:本题考查虚函数和多态性。原本obj指向祖先类,随后被赋值,指向新的子孙类,则在使用use这个重载的虚函数时,根据当前指向可确定调用子孙的同名虚函数。

第10题:

有如下程序:include using namespace std;class Base{public:Base(){ cout<<"BB";

有如下程序: #include <iostream.h> using namespace std; class Base { public: Base(){ cout<<"BB"; f(); } voidf(){cout <<"Bf"; } }; class Derived: public Base { public: Derived (){cout<<"DD";} void f(){cout<<"Df";} }; int main(){Derived d; return 0;} 执行上面的程序将输出

A.BBBfDD

B.BBDfDDDf

C.DD

D.DDBBBf


正确答案:A
解析:本题考核类的继承与派生知识。派生类构造函数执行的一般次序如下:首先调用基类构造函数,调用顺序按照它们被继承时说明的顺序。然后调用子对象的构造函数,调用顺序按照它们在类中的说明顺序。最后是派生类构造函数中的内容。题中定义派生类对象d时,先调用基类Base的构造函数输出BBBf(注意:基类Base构造函数中调用的函数f()是基类中的实现,而不是派生类中的实现),然后调用派生类Derived的构造函数输出DD。

更多相关问题