2019年计算机等级考试题库,二级C++试题(二)

发布于 2019-01-14 14:04  编辑:simi
0
计算机等级考试题库 扫码微信刷题


计算机等级考试遇到难题时不要抱怨,既然改变不了过去,那么就努力刷二级C++试题备考、努力改变未来。


二级C++试题.jpg

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];以下不能将输入数据first\nsecond\n读取到数组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

 

1.D。【解析】只有公有继承的公有成员才能被派生类的对象直接访问,其他的情况都会因为访问权限问题产生错误。

 

2.C。【解析】本题考查考生对拷贝构造函数的掌握。因为++运算是右结合的,所以在使用a对b赋值时,b的hum变为1,而a的num变为2(先赋值再自加)。

 

3.D。【解析】本题考查cin流对象的几种成员函数get,getline,read及流提取符>>的使用规则。

 

4.C。【解析】由主函数main入手,定义TestClass类的对象cs1,执行cs1.va1,其中va1为静态变量,根据intTestClass::val=0;初始化,TestClass中的TestClass(){val++;}构造函数执行后,val值为1。主函数中接着定义对象cs2,cs3,cs4。执行cout<  25.B。【解析】本题考查构造函数的应用。对象建立用初始化列表对数据成员进行时。列表中的参数类型要与构造函数中形参类型一致。B选项中第二个参数为13301111155,是字符串,而构造函数中第二个形参为char型,两者不一致造成错误。

 

6.D。【解析】声明派生类的一般形成为class派生类名:[继承方式]基类名。其中继承方式包括public、private和protected。而virtual为C++中的关键字,所以选项C错。虚函数的使用方法是在基类用virtual声明成员函数为虚函数。

 

7.D。【解析】本题考查的是友元类的定义:类A为类B的友元类,则类A的所有成员函数都是类B的友元函数,但反之则不一定成立。

 

8.B。【解析】虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数先于非虚基类的构造函数执行。

 

9.C。【解析】编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。

 

10.D。【解析】首先定义TestClass3的对象obj,参数为10。其中TestClass3为TestClass1和TestClass2的派生类。然后调用disp成员函数。disp中首先执行TestClassl::disp();,然后执行TestClass2::disp();,最后执行输出语句cout<




考无忧小编tips

有时候经历越多越会明白,在这个世界上,总有几样东西是别人拿不走的。比如,你读过的书、看过的风景、复习过的二级C++试题,更包括你那些曾经被嘲笑过的梦想。




文章推荐:

全国计算机等级考试可以不考一级直接考二级吗?

2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”

全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)


温馨提示:

考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office

想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库

想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯


本文网址:http://www.k51.com.cn/info/jsjdjks/1901/1450543.html
选择分享到: