elsecout<<*ptr;
ptr++;
}
return0;
}
A)HELLO,WORLDB)Hello,World
C)hELLO,wORLDD)hello,world
(16)已知:
intm=10;在下列定义引用的语句中,正确的是
A)int&x=m;B)inty=&m;
C)int&z;D)int&t=&m;
(17)下列函数原型声明中错误的是
A)voidFun(intx=0,inty=0);
B)voidFun(intx,inty);
C)voidFun(intx,inty=0);
D)voidFun(intx=0,inty);
(18)已知程序中已经定义了函数test,其原型是inttest(int,int,int);,则下列重载形式中正确的是
A)chartest(int,int,int);
B)doubletest(int,int,double);
C)inttest(int,int,int=0);
D)floattest(int,int,float=3.5F);
(19)有以下程序
#include
inti=0;
voidfun()
{{
staticinti=1;
std:
:
cout<
}
std:
:
cout<
}
intmain()
{
fun();fun();
return0;
}
程序执行后的输出结果是
A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,
(20)已知函数f的原型是:
voidf(int*a,long&b);变量v1、v2的定义是:
intv1;longv2;,正确的调用语句是
A)f(v1,&v2);B)f(v1,v2);
C)f(&v1,v2);D)f(&v1,&v2);
(21)有以下类定义
classMyClass
{
public:
MyClass(){cout<<1;}
};
则执行语句MyClassa,b[2],*p[2];后,程序的输出结果是
A)11B)111C)1111D)11111
(22)关于友元,下列说法错误的是
A)如果类A是类B的友元,那么类B也是类A的友元
B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员
C)友元关系不能被继承
D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元
(23)关于动态存储分配,下列说确的是
A)new和delete是C++语言中专门用于动态存分配和释放的函数
B)动态分配的存空间也可以被初始化
C)当系统存不够时,会自动回收不再使用的存单元,因此程序中不必用delete释放存空间
D)当动态分配存失败时,系统会立刻崩溃,因此一定要慎用new
(24)有以下程序
#include
usingnamespacestd;
classMyClass
{
public:
MyClass(intn){number=n;}
//拷贝构造函数
MyClass(MyClass&other){number=other.number;}
~MyClass(){}
private:
intnumber;
};
MyClassfun(MyClassp)
{
MyClasstemp(p);
returntemp;
}
intmain()
{
MyClassobj1(10),obj2(0);
MyClassobj3(obj1);
obj2=fun(obj3);
return0;
}
程序执行时,MyClass类的拷贝构造函数被调用的次数是
A)5B)4C)3D)2
(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的
A)公有成员和私有成员B)私有成员和保护成员
C)公有成员和保护成员D)私有成员、保护成员和公有成员
(26)在C++中用来实现运行时多态性的是
A)重载函数B)析构函数
C)构造函数D)虚函数
(27)一个类可以同时继承多个类,称为多继承。
下列关于多继承和虚基类的表述中,错误的是
A)每个派生类的构造函数都要为虚基类构造函数提供实参
B)多继承时有可能出现对基类成员访问的二义性问题
C)使用虚基类可以解决二义性问题并实现运行时的多态性
D)建立最派生类对象时,虚基类的构造函数会首先被调用
(28)在一个类体的下列声明中,正确的纯虚函数声明是
A)virtualvoidvf()=0;B)voidvf(int)=0;
C)virtualintvf(int);D)virtualvoidvf(int){}
(29)在下面的运算符重载函数的原型中,错误的是
A)Volumeoperator-(double,double);
B)doubleVolume:
:
operator-(double);
C)VolumeVolume:
:
operator-(Volume);
D)Volumeoperator-(Volume,Volume);
(30)下列是模板声明的开始部分,其中正确的是
A)template
B)template
C)template
D)template
(31)执行语句序列
ofstreamoutfile("DATA.DAT");
if(...)cout<<"OK";elsecout<<"FAIL";
后,如果文件打开成功显示“OK”,否则就显示“F厶n。
”。
由此可知,上面if语句的...
处的表达式应是
A)outfile.fail()或outfileB)outfile.good()或!
outfile
C)outfile.good()或outfileD)outfile.fail()或!
outfile
(32)C++流中重载的运算符>>是一个()
A)用于输出操作的非成员函数B)用于输入操作的非成员函数
C)用于输出操作的成员函数D)用于输入操作的成员函数
(33)有以下类定义
classPoint{
public:
Point(intx=0,inty=0){_.x=x;_.y=y;}
voidMove(intxOff,intyOff)
{_x+=xOff;_.y+=yOff;}
voidPrint()const
{cout<<'('<<_x<<','<<_y<<')'<private:
int_x,_y;
};
下列语句中会发生编译错误的是
A)Pointpt;pt.Print();
B)constPointpt;pt.Print();
C)Pointpt;pt.Move(l,2);
D)constPointpt;pt.Move(l,2);
(34)有以下类定义
classMyClass
{
private:
intid;
chargender,
char*phone;
public:
MyClass():
id(0),