计算机二级

在下面横线上填上适当的语句,完成程序。include using namespace std; class Base { in在下面横线上填上适当的语句,完成程序。include<iostream>using namespace std;class Base{int x;public:Base(int i){x=i;}~Base(){});class Derived:public Base{public:______//完成类Derive构造函数的定义};iht main(){Derived obj

题目
在下面横线上填上适当的语句,完成程序。include using namespace std; class Base { in

在下面横线上填上适当的语句,完成程序。

include<iostream>

using namespace std;

class Base

{

int x;

public:

Base(int i){x=i;}

~Base(){}

);

class Derived:public Base

{

public:

______//完成类Derive构造函数的定义

};

iht main()

{

Derived obj

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

第1题:

下列程序中划线处正确的语句是()。 include using namespace std;class Base{public:v

下列程序中划线处正确的语句是( )。 # include <iostream> using namespace std; class Base { public: void fun(){cout<<"Base:: fun" <<endl;} }; class Derived:public Base { void fun() { ______ ∥显式调用基类的函数fun() cout<<"D

A.fun();

B.Base.fun();

C.Base::fun();

D.Base- >fun();


正确答案:C

第2题:

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

有如下程序: #include <iostream> using namespace std; class Base { public: Base(int x=0) { cout<<x; } } class Derived: public Base{ public: Derived(int x=0) { cout<<x; } private: Base val; }; int main() { Derived d(1); return 0; }程序的输出结果是

A.0

B.1

C.1

D.1


正确答案:D
解析:本题考查的知识点是:类的构造。建立一个类的对象时,构造函数的执行顺序如下:
①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);
②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):(如果一行声明了多个对象,则还要遵循自左向右)
③执行自身的构造函数。
本题Derived类继承于Base类,所以首先会构造基类Base,但Derived类的构造函数没有初始化列表,所以将调用Base类的默认构造函数,输出一个0。接下来由于它的成员中还定义了一个Base类的对象,而构造函数也没有显示初始化这个对象,所以再次调用Base类的默认构造函数输出一个0。最后构造自身,因为主函数中传入了构造参数1,所以构造自身时输出了一个1。故最终输出结果为001,应该选择 D。

第3题:

有如下程序 include using namespace std; class Base { protected:

有如下程序 #include <iostream> using namespace std; class Base { protected: Base( ){cout<<'A'; } Base(char c) { cout<<c; } }; class Derived: public Base { public: Derived(char c){ cout<<c; } }; int main( ){ Derived d1 ('B'); return 0; } 执行这个程序屏幕上将显示输出

A.B

B.BA

C.AB

D.BB


正确答案:C
解析:本题考查的是派生类对象的构造。建立派生类对象时,构造函数的执行顺序如下:
  (1) 执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右):
  (2) 执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):
  (3) 执行派生类的构造函数。
  所以本题在建立派生类Derived的对象d1时会先调用基类Base的构造,由于派生类中没有通过初始化列表显式构造基类对象,所以调用的是基类的默认构造函数,会输出一个'A'。然后调用自身的构造函数,输出传入的构造参数'B'。故程序输出的结果是:AB。所以应该选择C。

第4题:

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

include 〈iostream〉

using namespace std;

class Base

{

public:

int a;

Base(int i) { a=i;}

};

class Derived : public Base

{

int a;

public:

Derived(int x) : Base(x),b(x+1) {}

void show()

{

【 】; //输出基类数据成员a的值

cout〈〈b〈〈end1;

}

};

int main()

{

Derived d(1);

d.show();

return 0;

}


正确答案:cout〈〈Base::a
cout〈〈Base::a 解析:本题考核作用域分辨符“::”的使用。

第5题:

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

有如下程序:#include <iostream>using namespace std;class Base{ public: Base(){cout<<"BB"; f(); } Void f(){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

第6题:

在下面程序的横线处填上适当的语句,使程序执行后的输出结果为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。

第7题:

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

第8题:

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

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

include<iostream.h>

using namespace std;

class Base

{

public:

int a,b;

Base(int i){a=i;}

};

class Derived:public Base

{

int a;

public:

Derived(int x):Base(x),b(x+1){};

void show()

{

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

cout<<b<<endl;

}

};

int main()

{

Derived d(1);

d.show();

return 0;


正确答案:coutBase::a
coutBase::a 解析:此题考查的是基类和派生类的构造函数。派生类构造函数的执行顺序为:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。此题要求结果是输出12,分析题目,首先调用基类的构造函数,然后是调用子对象的构造函数,横线处要求输出基类成员a的值,填入coutBase::a即可。

第9题:

在下面程序的横线处填上适当的语句,使该程序执行结果为10。 include using namespace

在下面程序的横线处填上适当的语句,使该程序执行结果为10。

include <iostream>

using namespace std;

class MyClass

{

public:

MyClasS(int A)

{

X=a;

}

【 】//取x的值

private:

int x;

};

int main()

{

MyClass my(10);


正确答案:int GetNum(){return x;}
int GetNum(){return x;} 解析:由主函数中调用对象my成员函数GetNum()可得到,成员函数GetNum()的功能是返回其私有数据成员x的值。

第10题:

为完成下面的程序,应在划线处填入的语句是includeusingnamespace std;class Base{pri

为完成下面的程序,应在划线处填入的语句是 #include<iostream> using namespace std; class Base { private: int x; public: Base (int i) { x=i; } ~Base(){} }; class Derived:public Base { public: ______________//完成类Derive构造函数的定义 }; int main() { Derived Obj; return 0; }

A.Derived(int i):Base(i){}

B.Derived(){}

C.void Derived (int i):Base(i){}

D.Derived(int i){Base(i);}


正确答案:A
解析:本题考核派生类中的构造函数。程序中,类Derived是基类Base的公有派生。在类Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。

更多相关问题