为了帮助大家复习好2014年计算机等级考试,本次我们考吧网特为广大考生整理了计算机等级考试模拟试题,希望广大考生能够喜欢。本次主要汇编了计算机等级《二级C++》精选试题:
一、选择题(每小题1分,共40小题,共40分)
25.有如下程序:
#included
usingnamespacestd;
classTestClass
{inta;
pubIic:
TestClass(intx){a=x;}
voidshow(){cout< classTestClassl:publicTestClass
{intb;
public:
TestClassl(inti):TestClass(i+1),b(i){}
voidshow(){cout< intmain()
{TestClassb(5),*P;
TestClassld(1):
p=&d;
p->show();
return0;}
该程序运行后的打印结果是( )。
A.5
B.1
C.0
D.2
26.下面程序输出的结果为( )。
#include"iostream.h"
classA
{public:
A(){cOUt<<"CLASSA"< ~A(){}};
ClaSSB:publicA
{public:
B(){cout<<"CLASSB"< ~B(){}};
voidmain()
{A*P;
P=newB:
B*q:
q=newB;}
A.CLASSA
B.CLASSA
CLASSBCLASSB
CLASSB
C.CLASSA
D.CLASSA
CLASSBCLASSB
CLASSACLASSB
CLASSBCLASSB
27.在下面的运算符重载函数的原型中,错误的是( )。
A.Volumeoperator-(double,double);
B.doubleVolume::operator-(double);
C.VolumeVolume::operator-(Volume);
D.Volumeoperator-(Volume);
28.有如下类声明:
classXA{
intx:
public:
XA(intn){x=n;}
};
classXB:publicXA{
inty;
oublic:
XB(inta,intb);
};
在构造函数XB的下列定义中,正确的是( )。
A.XB::XB(inta,intb):x(a),y(b){}
B.XB::XB(inta,intb):XA(a),y(b){}
C.XB::XB(inta,intb):x(a),XB(b){}
D.XB::XB(inta,intb):XA(a),XB(b){}
25.D。【解析】TestClass为TestClass1的基类,在主函数main中定义TestClass对象b,*P。TestClass1对象d,P指向d,调用其show函数。“TestClass(inti):TestClass(i+1),b(i){}”语句中的TestClass基类参数为2,所以show输出2。
26.C。【解析】本题考查类的继承、类的实例化和构造函数、析构函数的调用方式以及何时调用。每实例化一个类就要调用其构造函数,结束运行该实例后调用析构函数。
27.A。【解析】C++把重载的运算符视为特殊的函数,称为运算符函数,函数名就是在运算符前面保留字operatot。运算符重载的定义格式:<返回类型>operator<运算符号>(参数说明);运算符"-"是二元运算符,A选项中重载函数的形参列表都是double,而重载函数的返回类型为类Volume,显然是错误的。
28.B。【解析】C++中派生类构造函数的一般语法规则为<派生类名>::<派生类名>(<参数表>):<基类1>(<参数表1>),…,<基类名n>(<参数表n>),<子对象l>(<子对象参数表1>,…<子对象m>(<子对象参数表m>){<派生类新增成的初始化语句>;}。
推荐阅读: