计算机等级考试题库,二级C++试题

发布于 2019-03-25 10:08  编辑:simi
0
计算机等级考试题库 扫码微信刷题


因害怕失败而不敢放手一搏,永远不会成功。

因害怕计算机等级考试不过关而不敢去尝试做二级C++试题,永远不能战胜自己。


1.派生类对象对其基类中的什么成员是可访问的?(  )

A.公有继承的私有成员

B.私有继承的公有成员

C.私有继承的保护成员

D.保护继承的保护成员

 

2.有如下程序:

#included

usingnamespacestd

classA{

public

virtualvoidfuncl(){cout<<"A1";)

voidrune2(){cout<<"A2";}};

classB:publicA{

public

voidfuncl(){cout<<:"B1";}

voidfunc2(){eout<<"B2";}};

intmain(){

A*p=newB

p->func1()

P->func2()

return0;}

执行该程序,屏幕上将显示输出(  )。

A.B1B2

B.A1A2

C.B1A2

D.A1B2

 

3.重载输人流运算符>>必须使用的原型为(  )。

A.istream&operator>>(istream&,<类名>&);

B.istream&operator>>(istream,<类名>);

C.istreamoperator>>(istream,<类名>&);

D.<类名>operator>>(istream&,<类名>&);

 

4.有如下语句序列:

intk=0

do{k+=5;cout<<’$’;}whilc(k<19);

while(k->O)cout<<’*’

执行上面的语句序列输出字符“$”和“*”的个数分别是(  )。

A.4和20

B.5和20

C.4和21

D.5和21

 

5.下列关于模板的说法正确的是(  )。

A.模板的实参在任何时候都可以省略

B.类模板与模板类所指的是同一概念

C.类模板的参数必须是虚拟类型的

D.类模板中的成员函数全部都是模板函数

 

6.有以下程序:

#include

usingnamespacestd

classA

{private

inta

public

A(inti)

{a=i;}

voiddisp()

{cout<  classB

(private

intb

public

B(intj)

{b=j;}

voiddisp()

{cout<  classC:publicB,publicA

{private

intC

public

c(intk):A(k-2),B(k+2)

{c=k

}

voiddisp()

{

a::disp();

B::disp();

COUt<  }

}

intmain()

{

Cobj(10)

obj.disp()

return0

}

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

A.10,10,10

B.10,12,14

C.8,10,12

D.8,12,10

 

7.下列程序的输出结果是(  )。#include

voidmain()

(char*str="12123434"

intx1=0,x2=0,x3=0,x4=0,i;

for(i=0;str[i]!=’\0’;i++)

switch(str[i])

{case’1’:x4++;

case’2’:x3++;

case’3’:x2++;

case’4’:x1++;

}

cout<  <","<  }

A.8,6,4,1

B.8,6,3,2

C.8,8,4,1

D.8,6.4,2

 

8.以下不能正确创建输出文件对黎并使其与磁盘文件相关联的语句是(  )。

A.ofstreammyfile;myfile.open("d:ofile.txt");

B.ofstream*myfile=newofstream;myfile->open("d:ofile.txt”);

C.ofstreammyfile("d:ofile.txt");

D.ofstream*myfile=new("d:ofile.txt");

 

9.以下类定义中可能会引起错误的语句是(  )。

classA

{

public

~A(  ){}//1

inti;//2

private

intj;//3

A(inti){i++;}//4

}

A.1

B.2

C.3

D.4

 

10.有如下程序:

#include

usingnamespacestd

classTestClass

{public

virtualvoidfunl()

{cout<<"funlTestClass";}

virtualvoidfun2()

{cout<<“fun2TestClass”;}};

classTestClassl:publicTestClass

{voidfun()

{cout<<“funlTestClassl”;}};

intmain()

{TestClassobj1,*P;

TestClasslobj2

p=&obj2

p->fun1()

p->fun2()

return0;}

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

A.funlTestClasslfun2TestClass

B.funlTestClass1fun2TestC1ass1

C.funlTestClassfun2TestClass

D.funlTestClassfun2TestClassl

 

1.B。【解析】本题考查关于C++语言继承问题中派生类对基类的访问。C++语言中通常有三种继承修饰符,即public、protected、private,限制依次严格,另外对类中的数据和函数也由这三种修饰符进行限制,有三种成员是不能继承的:公有继承基类的私有成员,私有继承基类的私有成员,保护继承基类的私有成员。

 

2.C。【解析】程序中B为A的派生类,由主函数入手,主函数中定义了类A的指针P指向类B。根据基类中的“virtualvoidfuncl()”知道A中的funcl为虚函数,执行“P->fund();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的fund函数,输出B1。而fun2不是虚函数,所以执行“p->func2();”输出为A2。

 

3.A。【解析】C++流的输入运算符“>>”和输出运算符“<<”只能作为非成员函数重载。重载输入流运算符“>>”须使用的原型是istream&operator>>(istream&,<类名>&);。

 

4.A。【解析】本题首先执行语句do{k+=5;cout<<’$’;}while(k<19);,循环执行4次;全了4个“$”,k的值变为20;然后执行语句while(k-->0)cout<<’*’;,所以会输出20个“*”。

 

5.D。【解析】在C++中规定如果一个类被声明为类模板,那么其中的所有成员函数就都成为了模板函数。

 

6.D。【解析】本题中,派生类C具有多重继承关系,所以在派生类C的构造函数中应该包含基类A和类B的成员初始化列表。

 

7.D。【解析】本题考查循环的嵌套、for和switch语句的应用、C++中各种条件判断,循环语句的用法。只要注意在C++语言中,系统在字符指针的最后位置会增加一个字符串结束符’\0’,执行8次for循环,再根据switch语句中的条件易知答案。

 

8.D。【解析】本题考查文件对象的创建方法。可以直接定义文件对象,也可以用new来动态生成。很明显,选项D中使用new的方式是错误的。

 

9.D。【解析】本题考查关于C++语言类的定义方法。在C++语言中类定义中的构造函数是私有的,但是却调用了其中的公有变量,在实例化时会斟现错误。

 

10.A。【解析】TestClass为基类,TestClass1是TestClass的派生类。基类中的funl和fun2被定义为虚函数,C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数,所以派生类中的funl和fun2也是虚函数。本题从main主函数入手,首先定义了TestClass类型的

对象obil和指针P,然后又定义了TestClassl的对象obj2。指针指向对象obj2,然后调用其成员函数fun1(),即输出“funlTestClassl”。



考无忧小编tips

大多数人挂了计算机考试,根源不在于你的资质不行,而是你压根就没刷几套计算机等级考试题库就去考试!懒得备考才是你挂科的罪魁祸首!赶紧复习以上的二级C++试题,还有点击下方链接,把题目刷起来吧!



文章推荐:

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

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

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


温馨提示:

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

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

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


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