(31)有如下类声明:
class XA{
int x;
public:
XA(int n){ x=n;}
};
class XB: public XA{
int y;
public:
XB(int a,int b);
};
在构造函数XB的下列定义中,正确的是
A)XB::XB(int a,int b): x(a), y(b){ }
B)XB::XB(int a,int b): XA(a), y(b){ }
C)XB::XB(int a,int b): x(a), XB(b){ }
D)XB::XB(int a,int b): XA(a), XB(b){ }
(32)有如下程序:
#include
using namespace std;
class BASE{
public:
~BASE( ){ cout<<"BASE";}
};
class DERIVED: public BASE {
public:
~DERIVED( ){ cout<<"DERIVED";}
};
int main( ){DERIVED x; return 0 ;}
执行后的输出结果是
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<
Happy new year
则x中的字符串是"Happy"
(35)有如下程序:
#include
using namespace std;
class AA{
int n;
public:
AA(int k):n(k){ }
int get( ){ return n;}
int get( )const{ return n+1;}
};
int main( )
{
AA a(5);
const AA b(6);
cout<
}
执行后的输出结果是
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。请在横线处填上适当内容,实现该函数。
bool fun(char *str)
{
int i=0, j=0;
while (str[j]) 【6】 ;
for(j--; i
}
(7)执行语句序列
int x=10, &r=x;
cout><
(8)下列程序的输出结果为
Object id=0
Object id=1
请将程序补充完整。
#include
using namespace std;
class Point
{
public:
Point(int xx=0, int yy=0) {X=xx; Y=yy; countP++; }
~Point( ) { countP--; }
int GetX( ) {return X;}
int GetY( ) {return Y;}
static void GetC( ) {cout<<" Object id="<
int X,Y;
static int countP;
};
【9】 //静态数据成员的初始化
int main( )
{
Point::GetC( );
Point A(4,5);
A.GetC( );
return 0;
}
(9)非成员函数应声明为类的 【10】 函数才能访问这个类的private成员。
(10)派生类中的成员不能直接访问基类中的 【11】 成员。
(11)下列程序的输出结果为2,请将程序补充完整。
#include
using namespace std;
class Base
{
public:
【12】 void fun( ){ cout<<1; }
};
class Derived:public Base
{
public:
void fun( ) { cout<<2; }
};
int main( )
{
Base *p= new Derived;
p->fun( );
delete p;
return 0;
}
(12)请将下列类定义补充完整。
class Base { public: void fun( ){ cout<<"Base::fun"<
public:
void fun( ) {
【13】 //显式调用基类的fun函数
cout<<"Derived::fun"<
(13)多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[ ]运算符只能作为类的 【14】 函数重载。
(14)下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。
template
class Tstack
{
enum {size=1000};
T stack[size];
int top;
public:
Tstack( ):top(0){ }
void push(const T &i){
if(top
}
T pop( ){
if(top == 0) exit(1); //栈空时终止运行
return 【15】 ;
}
};
责任编辑:cyth