电话:0731-83595998
导航

2018年9月计算机二级C语言考试巩固强化题(9)

来源: 2018-07-27 18:49

 1.可以用P.a的形式访问派生类对象P的基类成员a,其中a是(  )。

A.私有继承的公有成员

B.公有继承的私有成员

C.公有继承的保护成员

D.公有继承的公有成员

2.下面程序的运行结果为(  )。

#include

classA

{

intnum;

public:

A(inti){num=i;)

A(A&a){num=a.num++;}

voidprint(){cout<  };

voidmain()

{

Aa(1),b(a);

a.print();

b.print();

}

A.11B.12

C.21D.22

3.设有定义charstr[80];以下不能将输入数据firstnsecondn读取到数组str中的语句是(  )。

A.cin.get(str,strlen(str));

B.cin.getline(str,strlen(str));

C.cin>>str;

D.cin.read(str,strlen(str));

4.下列程序的输出结果为(  )。

#include

classTestClass

{

public:

TestClass(){val++;}

static,intval;

};

intTestClass::val=0;

voidmain()

{

TestClasscsl;

cout<  TestClasscs2;

TestClasscs3,cs4;

cout<  }

A.O3

B.13

C.14

D.24

5.有以下类定义:

classMyClass

{

private:

intid;

chargender;

char*phone;

public:

MyClass():id(0),gender(’#’),phone(NULl){}

MyClass(intn0,charge=’#’,char*ph=NULL)

{id=no;gender=ge;phone=ph;}

};

下列类对象定义语句中错误的是(  )。

A.MyClassmyObj;

B.MyClassmyObj(11,"13301111155");

C.MyClassmyObj(12,’m’);

D.MyClassmyObj(12);

6.下列是关于派生类声明的开始部分,其中正确的是(  )。

A.classvirtualB:publicA

B.virtualclassB:publicA

C.classB:publicAvirtual

D.classB:virtualpublicA

7.如果类A被说明成类B的友元,则(  )。

A.类A的成员即类B的成员

B.类B的成员即类A的成员

C.类A的成员函数不得访问类B的成员

D.类B不一定是类A的友元

8.下列关于虚基类的描述,错误的是(  )。

A.设置虚基类的目的是为了消除二义性

B.虚基类的构造函数在非虚基类之后调用

C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数

9.下列关于多态性的描述,错误的是(  )。

A.C++语言中的多态性分为编译时的多态性和运行时的多态性

B.编译时的多态性可通过函数重载实现

C.运行时的多态性可通过模板和虚函数实现

D.实现运行时多态性的机制称为动态绑定

10.若有如下程序:

#include

usingnamespacestd;

classTestClassl

{

private:

inta;

public:

TestClassl(inti)

{

a=i:

}

voiddisp(  )

{

cout<  }

};

classTestClass2

{

private:

intb:

public:

TestClass2(intj)

{

b=j;

}

voiddisp()

{

cout<  }

};

classTestClass3:publicTestClass2,publicTestClassl

{

private:

intc;

public:

TestClass3(intk):TestClass1(k-2),TestClass2(k+2)

{

c=k:

}

voiddisp()

{

TestClasssl::disp();

TestClasss2::disp();

cout<  }

};

intmain()

{

TestClass30bj(10);

obj.disp();

return0;

}

程序执行后的输出结果是(  )。

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10

11.在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD(  )。

#include

usingnamespacestd;

classA

{

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

};

classB:

{

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

};

classC:virtualpublicA

{

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

};

classD:publicB,publicD

{

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

};

voidmain(){D04;}

A.publicA

B.privateA

C.protectedA

D.virtualpublicA

12.有如下程序:

#include

usingnamespacestd;

classAA{

intn;

public:

AA(intk):n(k){}

intget(){returnn;}

intget()const{returnn+1;}

};

intmain()

{

AAa(5);

constAAb(6);

cout<  return0;

}

执行后的输出结果是()。

A.55

B.57

C.75

D.77

13.有如下程序:

#include

usingnamespacestd;

classDemo

{

public:

Demo(){cout<<"defaultconstructorn";}

Demo(constDemo&x){cont<<"copyconstruc-

torn";}

};

DemouserCode(Demob){Democ(b);returnC;}

intmain()

{

Demoa;d;

cout<<"callinguserCode()n";

d=userCode(a):

return0;

}

执行上面程序的过程中,构造函数Demo(  )和Demo(constDem0&x)被调用的次数分别是(  )。

A.1和1

B.1和2

C.2和3

D.2和4

14.有如下程序:

#include

usingnamespacestd;

classDA{

intk;

public:

DA(intx=1):k(x){}

~DA(){cout<  };

intmain(){

DAd[]={DA(3),DA(3),DA(3));

DA+p=newDA[2];

delete[]p;

return();

}

这个程序的输出结果是(  )。

A.111

B.333

C.11333

D.11133

15.有如下程序:

#include

usingnamespacestd;

classMyClass{

public:

MyClass(intx):val(x){}

voidPrint()const{cout<<"const:val="<<  voidPrint(){cout<<"val="<  private:

intval;

};

intmain(){

constMyClassobj1(10);

MyClassobj2(20);

obj1.Print();

obj2.Print();

return0;

}

程序的输出结果是(  )。

A.va1=10const:va1=20

B.const:va1=10const:va1=20

C.const:va1=10val=20

D.val=10va1=20

16.关于函数中的<返回类型>。下列表述中错误的是(  )。

A.<返回类型>中有可能包含关键字int

B.<返回类型>中有可能包含自定义标识符

C.<返回类型>中衣可能包含字符*

D.<返回类型>中可能包含[]

17.Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是(  )。

Samplea[2],*p=newSample;

A.0

B.1

C.2

D.3

18.有如下两个类定义:

classXX{

private:

doublex1;

protected:

doublex2;

public:

doublex3;

};

claseYY:protectedXX{

private:

doubley1;

protected;

doubley2;

public:

doubley3;

};

在类YY中保护成员变量的个数是(  )。

A.1

B.2

C.3

D.4

19.下列关于运算符重载的描述中,错误的是(  )。

A.可以通过运算符重载在C++中创建新的运算符

B.赋值运算符只能重载为成员函数

C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象

D.重载类型转换运算符时不需要声明返回类型

20.下列关于类模板的描述中,错误的是(  )。

A.类模板的成员函数都是模板函数

B.可以为类模板参数设置默认值

C.类模板描述了一组类

D.类模板中只允许有一个类型参数

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端