定义堆栈类模板Stack(先进后出),栈的大小由使用者确定。要求该类模板对外提供 如下二种基本操作: (1)push入栈(2)pop出栈,用数组来实现 #include using namespace std; temp
答案是:template|Push|Pop|;|(|)|int|{
定义一个矩形类(Rectangle),私有数据成员为矩形的长度(len)和宽度(wid),无参构造函数置len和wid为0,带参构造函数置len和wid为对应形参的值,另外还包括求矩形周长,求矩形面积、取矩形长度、取矩形宽度、修改矩形长度和
答案是:class|main|;|(|)|float|{|}
在三角形类TRI实现两个函数,功能是输入三个顶点坐标判断是否构成三角形 #include #include class point{ private:float x,y; public:point(f
答案是:settri|sqrt|;|(|)|float|{|}
下面是定义二次多项式ax2+bx+c所对应的类#include#includeclass Quadratic { double a,b,c;public: Quadratic(){a=b=c=0;} Quadratic(d
答案是:main|Root|Print|;|(|)|{|}
编写一个三角形类,有计算面积,显示面积的功能等,并测试。要求有参数的构造函数及
答案是:class|~|;|(|)|float|{|}
C++的流库预定义了4个流,它们是cin、cout、______和clog。
答案是:cerr
执行______操作将释放由p所指向的动态分配的数据空间。
答案是:delete p
若y是x的引用,则对y的操作就是对______的操作。
答案是:x
C++是通过引用运算符______来定义一个引用的。
答案是:&
一个const对象只能访问______成员函数
答案是:const
在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是______
答案是:用户
派生类从一个或多个以前定义的该类的_________继承数据和函数。
答案是:基类
在C++中,访问一个对象的成员所用的运算符是成员选择运算符,访问一个指针所指向的对象的成员所用的运算符是_________。
答案是:成员访问运算符(或“->”)
将关键字const写在成员函数的函数头和_________之间时,所修饰的是this指
答案是:函数体
假定AB为一个类,则语句AB(AB&x);为该类_________构造函数的原型
答案是:复制初始化(或拷贝)
C++中语句const char * const p=″hello″;所定义的指针p和它所指的内容都不能被_________。
答案是:改变(或重新赋值)
C++支持的两种多态性分别是编译时的多态性和_________多态性。
答案是:运行时的(或动态,或虚函数)
基类的公有成员在派生类中的访问权限由_________决定。
答案是:访问控制
表达式cout<
答案是:cout<<′\n′
在C++程序设计中,建立继承关系倒挂的树应使用_________继承。
答案是:单
定义类的动态对象数组时,系统只能够自动调用该类的_________构造函数对其进
答案是:无参
所有模版都是以______关键字和一个形参表开头的。
答案是:template
C++程序的源文件扩展名为______。
答案是:cpp
为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定
答案是:private
对象的四大基本特性是多态性、继承性、______和封装性。
答案是:抽象性
指出下面程序段中的错误,并说明出错原因。
class Location {
int X,Y=20;
protected:
int zeroX,zeroY;
答案是:int X,Y=20;出错,不能采用这种方式初始化。
指出下面程序段中的错误,并说明出错原因。
#include
class A{
public: void fun( ){cout<<″a.fun″<<>< p="">
};
class
答案是:void hun(){fun();}出错,C::fun()有二义性。
指出下面程序段中的错误,并说明出错原因。
class one{
private:
int a;
public:
void func(two&);
};
class
答案是:void func(two&);出错,two尚未声明(或应在class one前加声明语句class two;)。
指出并改正下面利用类模板的对象定义中的错误。
template
class Tany{
T x,y;
public:
Tany(T a,T b){x=a,y=b;}
T sum(
答案是:Tany(int) obj(10,100);出错,应为Tany obj(10,100);语句。
[改错题,3.1分] 指出下面程序段中的错误,并说明出错原因。
class A{
int a,b;
public:
A(int aa,int bb) {a=aa;b=bb;}
};
答案是:Ax(2,3),y(4);语句出错,因为没有单参数的构造函数(或者y(4)少写了一个参数)。
在下面程序横线处填上适当的字句,使其输出结果为0,56,56。
#include
class base{
public:
在下面程序横线处填上适当的字句,使其输出结果为
答案是:void
下面是类fraction(分数)的定义,其中重载的运算符<<以分数形式输出结果,例如将三分之二输出为2/3。在横线处填上适当字句。
class fraction{
int den; //分子
int num
答案是:os
下面是一个用户口令检查程序,在横线处填上适当语句完成程序功能。
#include
#include
const char *PASS=″wolleh″;//定义由PASS指针所指向的口令wolleh。
答案是:cin>>user;
下面是一个函数模板,用于计算两个向量的和。在下面横线处填上适当字句,完成函数模板定义。
#include
template
T* f(T* a,T* b,int n)
{
T* c=____
答案是:new int[n]
在下面横线处填上适当字句,完成类中成员函数的定义。
class A{
int * a;
public:
A(int aa=0) {
a=new int(
答案是:delete a
#include
template
Tf(T*a,T*b,int n){
Ts=(T)0;
for(int i=0;i<>< p="">
答案是:3531
#include
void main( )
{
int *a;
int *&p=a;
int b=10;
答案是:10
类的私有成员只能被它的成员函数和_________访问。
答案是:友元类(或友元函数,或友元)
在下面的类定义中,私有成员有_________。
class Location {
int X,Y;
protected:
int zeroX,zerxY;
答案是:X,Y,length,height
静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是_________。
答案是:友元函数
在删除一个动态对象时,将自动调用该动态对象所属类的_________函数。
答案是:析构
封装要求一个对象应具备明确的功能,并具有_________以便和其它对象相互作用。
答案是:接口〈或界面.或公有成员〉
要在调用虚函数的时候强制进行静态联编,可以通过在调用中对虚函数加_________实现。
答案是:域名限制(或其它含义等价的描述)
通过C++语言中的_________机制,可以从现存类中构建其子类。
答案是:继承(或派生)
表达式count<
答案是:cout,sctf(ios::hex,ios::basefield)
假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定
答案是:~AB(){}
模板定义中标识类型的参数必须用关键字_________修饰。
答案是:class(或typcname)
重载函数在参数类型或参数个数上不同,但___________________相同
答案是:函数名
在C++中,访问指针所指向的对象的成员使用运算符___________________。
答案是:->
在派生类中实现基类成员的初始化,需要由派生类的构造函数调用_________________
答案是:基类的构造函数
编译时的多态性通过___________________函数实现。
答案是:重载
为了实现多态性,派生类需重新定义基类中的___________________。
答案是:虚函数
由static修饰的数据成员为该类的所有对象___________________。
答案是:共享
如果重载了运算符+,则相应的运算符函数名是___________________。
答案是:operator+
在ios类中定义的用于控制输入输出格式的枚举常量中,用于代表十进制、八进制和十六进制的3个枚举常量是dec、oct和___________________。
答案是:hex
函数模板中紧随template之后尖括号内的类型参数都要冠以保留字________________。
答案是:class
在用C++进行程序设计时,最好用___________________代替malloc。
答案是:new
指出下面程序段中的错误,并说明出错原因。
class Location {
int X,Y;
protected:
int zeroX,zero
答案是:location retangleA={25,20,3,5,6,7,3};语句错误,因为数据成员不都是公有成员,不能用初始化列表初始化
指出下面程序中的错误,并说明错误原因。
#include
class A{
public:void fun(){cout<<″a.fun″<<>< p="">
};
答案是:第15行 obj.fun();语句错误,因为用C类的对象obj对函数fun()的访问是两义的,应使用成员名限定来消除两义性。
指出下面程序中的错误,并说明出错原因。
#include
class ConstFun{
public:
void ConstFun(){}
答案是:程序中第4行“void ConstFun(){}”错误,因为声明构造函数时不能指定返回类型
下面程序通过调用函数模板实现计算两个正整数的最大公约数,把main函数中错误找出并改正过来。
#include
template
T gcd(Tx,Ty){
while(x
答案是:main函数中的gcd(a,d)改为gcd(a,(int)d) (或把double d;改为int ; 或把gcd(a,d)改为gcd<int>(a,d)或把gcd(a,b)改为gcd(a,int (a))=
此类定义有一处错误,请指出错误并改正。
class ABC{
int a;
public:
ABC(int aa)a(aa){}
};
答案是:ABC(int aa)与a(aa){}之间少一个冒号,应改为ABC(tnt lla):a(aa){}
在下面程序横线处填上适当的内容,使该程序输出结果为:
Creating B
end of B
end of A
程序如下:
#include
class A
答案是:cout<<”creating B”<
请在下面横线处填上适当的内容,使程序的输出为:
7.00000
7
程序如下:
#include
viod main(){
double x=7;
答案是:resetiosflags(ios::showpoint)
下面程序三次调用同一函数sum,在横线处填上适当内容,使输出结果为:
S=2
S=5
S=9
程序如下:
#include
void sum(int i)
答案是:i<3;i++
在下面程序横线处填上适当内容,使程序执行结果为:
200_ _ 100
程序如下:
#include
template <class T>
Tf(Tx,Ty){
答案是:sizeof(double)
在下面程序段横线处填上适当的内容。
class A{
________
int n;
public:
A(int nn=0):n(nn)
答案是:int *a;
写出下面程序的输出结果。
#include
class FUN{
friend ostream& operator <<(ostream&,FUN);
}fun;
ostre
答案是:* * * * * 12345 54321 * * * * *
当从键盘上输入1.5 10时,写出下面程序的执行结果。
#include
void mian()
{
int a,b,c;
char ch;
答案是:1(1分) .(2 分) 5(1分) 10(1分)
在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用
答案是:ip = new int[10];
在联合中,所有数据成员具有______的地址,任一时刻只有一个数据成员有效。
答案是:相同
为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义
答案是:析构函数
通过C++语言中类的______,可以扩充和完善已有类以适应新的需求。
答案是:继承机制
在C++中,虚函数帮助实现了类的______性。
答案是:多态
一个抽象类的派生类可以实例化的必要条件是实现了所有的______。
答案是:纯虚函数
将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。此时const不是指定函数的返回值,而是修饰______指针。
答案是:this
语句序列
ifstream datafile;
datafile.open(“data.dat”);
的功能可用一个语句实现,这个语句是______。
答案是:ifstream datafile(“data.dat”)
在单继承和多继承方式中,面向对象的程序设计应尽量使用______继承。
答案是:单一(或单)
设函数max是由函数模板实现的,并且max(3.5,5)和max(10,5)都是正确的函数调用,则该模板具有______个类型参数。
答案是:2
作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有____________个操作数。
答案是:2
每个对象都是所属类的一个____________。
答案是:实例
当函数参数表用____________保留字表示时,则表示该参数表为空。
答案是:void
C++的流库预定义了4个流,它们是cin、cout、cerr和____________。
答案是:clog
若p指向x,则____________与x的表示是等价的。
答案是:*p
假定用户为类AB定义了一个构造函数“AB(int aa=0):a(aa){}”,则定义该类的对象时,可以有____________种不同的定义格式。
答案是:2
C++支持两种多态性,编译时的多态性和____________时的多态性。
答案是:运行
假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为____________。
答案是:int &aa
在C++中,编译指令都是以____________(符号)开始。
答案是:#
重载“<<”操作符时,应声明为 ____ 函数。
答案是:友元
用下横线标出下面程序main函数中的错误所在行,并说明错误原因。
# include
class Location{
private:
int X,Y;
答案是:第24行语句x=A1.X;y=A1.Y;有错,因为main函数不能访问对象A1的私有成员。
下面的程序类B的定义中有一处错误,请用下横线标出错误所在行并说明错误原因。
# include
# include
class A{
public:A(const
答案是:第12行有错,因为在类B中,name是由类A私有成员继承来的,不能被派生类访问。
下面的程序有一处错误,请用下横线标出错误所在行并改正错误。
# include
class Test{
public;
static int x;
答案是:程序中第6行错误,该行应为: int Test::x=20;
下面的程序先把字符串“Look out!”输出到一个文件中,然后再从该文件输入,并显示在屏幕上,显示效果为Look out!。程序中有一处错误,请用下横线标出错误所在行,并给出更改意见。
# include
答案是:第7行错,应改为:char k;while(inf.get(k)) cout<
下面的类定义有一处错误,请用下横线标出错误所在行并改正错误。
class A{
int a;
public;
A(int aa):a=aa{ }
};
答案是:第4行有错“:a=aa”有错,应改为“:a(aa)”或等价的写法
根据注释在空白处填写适当内容。
class Location{
private:
int X,Y;
public:
void i
答案是:cout<
在下面横线处填上合适内容,完成类B的定义。
# include
class A{
public:A( ){a=0;}
A(int i){a=i
答案是:A(i)
在下面程序中的横线处填上适当内容,使程序完整。
# include
class vehicle
{
protected:
int size;
答案是:&v2
在下面的横线处填上适当内容,使程序完整。
# include
# include
class loc{
private:
答案是:static
在下面程序横线处填上适当内容,以使该程序执行结果为:
12
88
# include
template
class Tany{
public:
答案是:T x,y;
写出下面程序的输出结果:
# include
template
class Tclass{
T x,y;
public:
Tcla
答案是:10.5-5.8i 10+0i
写出下面程序的输出结果:
# include
class FunArray{
int *pa; //指向一个数组空间
int size; //数组元素个数
答案是:3,7,9,1,5,4,
C++语言中可以实现输出一个换行符并刷新流功能的操控符是()。
答案是:endl
执行下列代码
cout <<″hex:″<< hex="" 255="">程序的输出结果为 () 。
答案是:Hex:ff
执行下列代码
int a=29,b=100;
cout <程序的输出结果是:()。
答案是:29100
在C++中,声明布尔类型变量所用的关键字是() 。
答案是:bool
在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不含指定的子串,find函数的返回值是() 。
答案是:-1
将指向对象的指针作为函数参数,形参是对象指针,实参是对象的()。
答案是:地址值
对象传送的消息一般由3部分组成:接收对象名、调用操作名和()。
答案是:必要的参数
类A有如下成员函数
int A::fun(double x){return (int) x/2;}
int A::fun(int x){return x*2;}
设a为类A的对象,在主函数中有int s=a.fun(6.0)+a.fu
答案是:7
在保护派生中,基类权限为Private的成员在派生类()中 。
答案是:不可访问
设在程序中使用如下语句申请了一个对象数组:
Point * ptr = new Point[2];
则在需要释放ptr指向的动态数组对象时,所使用的语句是()
答案是:delete[ ]ptr;
设类A有成员函数
void Fun(void);
若要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是:()
答案是:void(A::*pafn)(void);
()指令指示编译器将一个源文件嵌入到带该指令的源文件之中。
答案是:#include
不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为()。
答案是:多态性
类的继承是指子类继承基类的()和成员函数。
答案是:数据成员
在C++中,利用向量类模板定义一个具有20个char的向量E,其元素均被置为字符‘t’,实现此操作的语句是()
答案是:vectorE(20,‘t’)
vector类中用于返回向量中第1个对象的方法是front( )。
答案是:front()
定义虚函数所用的关键字是()。
答案是:virtual
运算符[ ]只能用( )运算符来重载,不能用友元运算符来重载。
答案是:成员
C++中ostream类的直接基类是() 类。
答案是:ios
目前为:
1/3
页
首页 上页 下页 尾页