:
endl;
return0;
}
执行后的输出结果是
A)42,42
B)23,23
C)23,42
D)42,23
(22)有如下类声明:
classFoo{ intbar; };
则Foo类的成员bar是
A)公有数据成员
B)公有成员函数
C)私有数据成员
D)私有成员函数
(23)有如下类声明:
classMyBASE{
intk;
public:
voidset(intn){k=n;}
intget()const{returnk;}
};
classMyDERIVED:
protectedMyBASE{
protected:
intj;
public:
voidset(intm,intn){MyBASE:
:
set(m);j=n;}
intget()const{returnMyBASE:
:
get()+j;}
};
则类MyDERIVED中保护的数据成员和成员函数的个数是
A)4
B)3
C)2
D)1
(24)已知在一个类体中包含如下函数原型:
VOLUMEoperator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是
A)这是运算符-的重载运算符函数
B)这个函数所重载的运算符是一个一元运算符
C)这是一个成员函数
D)这个函数不改变类的任何数据成员的值
(25)有如下函数模板定义:
template
Tfunc(Tx,Ty){ returnx*x+y*y;}
在下列对func的调用中,错误的是
A)func(3,5);
B)func(3.0,5.5);
C)func(3,5.5);
D)func(3,5.5);
(26)有如下程序:
#include
usingnamespacestd;
intmain()
{
cout.fill('*');
cout.width(6);
cout.fill('#');
cout<<123< return0;
}
执行后的输出结果是
A)###123
B)123###
C)***123
D)123***
(27)在下列函数原型中,可以作为类AA构造函数的是
A)voidAA(int);
B)intAA();
C)AA(int)const;
D)AA(int);
(28)下列关于this指针的叙述中,正确的是
A)任何与类相关的函数都有this指针
B)类的成员函数都有this指针
C)类的友元函数都有this指针
D)类的非静态成员函数才有this指针
(29)有如下程序:
#include
usingnamespacestd;
classTest{
public:
Test(){n+=2;}
~Test(){n-=3;}
staticintgetNum(){returnn;}
private:
staticintn;
};
intTest:
:
n=1;
intmain()
{
Test*p=newTest;
deletep;
cout<<"n="<:
getNum()< return0;
}
执行后的输出结果是
A)n=0
B)n=1
C)n=2
D)n=3
(30)有如下程序:
#include
usingnamespacestd;
classA{
public:
A(){cout<<"A";}
};
classB{public:
B(){cout<<"B";}};
classC:
publicA{
Bb;
public:
C(){cout<<"C";}
};
intmain(){ Cobj; return0;}
执行后的输出结果是
A)CBA
B)BAC
C)ACB
D)ABC
(31)有如下类声明:
classXA{
intx;
public:
XA(intn){x=n;}
};
classXB:
publicXA{
inty;
public:
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){}
(32)有如下程序:
#include
usingnamespacestd;
classBASE{
public:
~BASE(){cout<<"BASE";}
};
classDERIVED:
publicBASE{
public:
~DERIVED(){cout<<"DERIVED";}
};
intmain(){DERIVEDx;return0;}
执行后的输出结果是
A)BASE
B)DERIVED
C)BASEDERIVED
D)DERIVEDBASE
(33)在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。
下列叙述中正确的是
A)operator+有两个参数,operator*有两个参数
B)operator+有两个参数,operator*有一个参数
C)operator+有一个参数,operator*有两个参数
D)operator+有一个参数,operator*有一个参数
(34)下面关于C++流的叙述中,正确的是
A)cin是一个输入流对象
B)可以用ifstream定义一个输出流对象
C)执行语句序列char*y="PQMN";cout<PQMN?
的地址
D)执行语句序列char x[80];cin.getline(x,80);时,若键入
Happy new year
则x中的字符串是"Happy"
(35)有如下程序:
#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
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 【1】 。
(2)算法复杂度主要包括时间复杂度和 【2】 复杂度。
(3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:
驱动模块和承接模块(桩模块)。
其中 【3】 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
(4)一棵二叉树第六层(根结点为第一层)的结点数最多为 【4】 个。
(5)数据结构分为逻辑结构和存储结构,循环队列属于 【5】 结构。
(6)下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。
请在横线处填上适当内容,实现该函数。
boolfun(char*str)
{
inti=0,j=0;
while(str[j]) 【6】 ;
for(j--;ireturni 【7】 j;
}
(7)执行语句序列
intx=10,&r=x;
cout><<<'-'<<输出结果为 【8】 。
(8)下列程序的输出结果为
Objectid=0
Objectid=1
请将程序补充完整。
#include
usingnamespacestd;
classPoint
{
public:
Point(intxx=0,intyy=0){X=xx;Y=yy;countP++;}
~Point(){countP--;}
intGetX(){returnX;}
intGetY(){returnY;}
staticvoidGetC(){cout<<"Objectid="<<private:
intX,Y;
staticintcountP;
};
【9】 //静态数据成员的初始化
intmain()
{
Point:
:
GetC();
PointA(4,5);
A.GetC();
return0;
}
(9)非成员函数应声明为类的 【10】 函数才能访问这个类的private成员。
(10)派生类中的成员不能直接访问基类中的 【11】 成员。
(11)下列程序的输出结果为2,请将程序补充完整。
#include
usingnamespacestd;
classBase
{
public:
【12】 voidfun(){cout<<1;}
};
classDerived:
publicBase
{
public:
voidfun(){cout<<2;}
};
intmain()
{
Base*p=newDerived;
p->fun();
deletep;
return0;
}
(12)请将下列类定义补充完整。
classBase{public:
voidfun(){cout<<"Base:
:
fun"<classDerived:
publicBase{
public:
voidfun(){
【13】 //显式调用基类的fun函数
cout<<"Derived:
:
fun"<}};
(13)多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[]运算符只能作为类的 【14】 函数重载。
(14)下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。
栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。
template
classTstack
{
enum{size=1000};
Tstack[size];
inttop;
public:
Tstack():
top(0){}
voidpush(constT&i){
if(top stack[top++]=i;
}
Tpop(){
if(top==0)exit
(1); //栈空时终止运行
return 【15】 ;
}
};
参考答案:
一、选择题:
01.C02.A03.D04.D05.C06.D07.A08.A09.B10.B11.C12.A13.D14.B15.C
16.D17.D18.A19.C20.A21.B22.C23.B24.B25.C26.A27.D28.D29.A30.D
31.B32.D33.C34.A35.B
二、填空题:
36.数据库系统37.空间38.驱动模块39.3240.存储41.J++;%26gt;=42.10-1043.intpoint:
:
countp=0
44.友元45.私有46.virtual47.Base:
:
fun()48.成员49.stack[--top]