A.12B.1100C.14D.C
B(7)对<<进行重载的语句istream&operator<<(istream&is,date&dt),其中对is的说法正确的是()
A.是一个istream对象
B.是istream的一个对象的引用
C.起返回操作结果作用
D.仅作为参数传递的作用
B(8)以流方式打开一个文件的输入文件的语句正确的是()
A.ofstreamafile();
afile.open("test1.dat",ios:
:
in|ios:
:
binary)
B.ifstreamafile();
afile.open("test1.dat",ios:
:
in|ios:
:
binary)
C.ifstreamafile();
afile.open("test1.dat",ios:
:
out|ios:
:
binary)
D.ofstreamafile();
afile.open("test1.dat",ios:
:
out|ios:
:
binary)
答案:
1.D2.A3.C4.D5.B6.C7.B8.B
B94.关于消息,下列说法中不正确的是(B)。
A.发送消息的对象请求服务,接受消息的对象提供服务
B.消息的发送者必须了解消息的接收者如何相应消息
C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用
D.每个对象只能接收某些特定格式的消息
D95.关于封装,下列说法中不正确的是(D)。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
C96.面向对象方法的多态性是指()。
A.一个类可以派生出多个特殊类
B.一个对象在不同的运行环境中可以有不同的变体
C.针对一消息,不同的对象可以以适合自身的方式加以响应
D.一个对象可以是由多个其他对象组合而成的
C104.在一个类的定义中,包含有()成员的定义。
A.数据B.函数C.数据和函数D.数据或函数
D105.在类作用域中能够通过直接使用该类的()成员名进行访问。
A.私有B.公用C.保护D.任何
B106.在关键字public后面定义的成员为类的()成员。
A.私有B.公用C.保护D.任何
A107.在关键字private后面定义的成员为类的()成员。
A.私有B.公用C.保护D.任何
D108.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A.x(a)B.x[a]C.x->aD.x.a
B109.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。
A.x.aB.x.a()C.x->aD.x->a()
C110.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为()。
A.px(a)B.px[a]C.px->aD.px.a
D111.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A.x.aB.x.a()C.x->GetValue()D.x.GetValue()
A112.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。
A.intAA:
:
a()B.intAA:
a()
C.AA:
:
a()D.AA:
:
inta()
A113.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为()。
A.aB.AA:
:
aC.a()D.AA:
:
a()
B114.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。
A.inB.inlineC.inLineD.InLiner
D115.在多文件结构的程序中,通常把类的定义单独存放于()中。
A.主文件B.实现文件C.库文件D.头文件
B116.在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于()中。
A.主文件B.实现文件C.库文件D.头文件
A117.在多文件结构的程序中,通常把含有main()函数的文件称为()。
A.主文件B.实现文件C.程序文件D.头文件
C118.一个C++程序文件的扩展名为()。
A..hB..cC..cppD..cp
A119.在C++程序中使用的cin标识符是系统类库中定义的()类中的一个对象。
A.istream输入流B.ostreamC.iostreamD.fstream
B120.在C++程序中使用的cout标识符是系统类库中定义的()类中的一个对象。
A.istreamB.ostreamC.iostreamD.fstream
D121.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为()。
A.intB.charC.AAD.AA*
C122.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为()。
A.abcB.*thisC.thisD.this&
A123.假定AA是一个类,“AA&abc();”是该类中一个成员函数的原型,若该函数存在对*this赋值的语句,当用x.abc()调用该成员函数后,x的值()。
A.已经被改变B.可能被改变
C.不变D.不受函数调用的影响
C124.假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值()。
A.已经被改变B.可能被改变
C.不变D.受到函数调用的影响
B125.类中定义的成员默认为()访问属性。
A.publicB.privateC.protectedD.friend
A126.结构中定义的成员默认为()访问属性。
A.publicB.privateC.protectedD.friend
C127.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为()。
A.nB.n+1C.n-1D.n-2
C128.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为()。
A.length+1B.first+length
C.(first+length-1)%MSD.(first+length)%MS
D129.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为()。
A.length+1B.first+length
C.(first+length-1)%MSD.(first+length)%MS
B130.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首的后一个位置为()。
A.first+1B.(first+1)%MS
C.(first-1)%MSD.(first+length)%MS
D131.在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队非空,则进行插入时必须把新结点的地址赋给()。
A.elemHeadB.elemTail
C.elemHead->next和elemHeadD.elemTail->next和elemTail
C132.在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新结点的地址赋给()。
A.elemHeadB.elemTail
C.elemHead和elemTailD.elemHead或elemTail
A133.队列具有()的操作特性。
A.先进先出B.先进后出C.进出无序D.进出任意
B134.栈具有()的操作特性。
A.先进先出B.先进后出C.进出无序D.进出任意
A135.对于一个类的构造函数,其函数名与类名()。
A.完全相同B.基本相同C.不相同D.无关系
C136.对于一个类的析构函数,其函数名与类名()。
A.完全相同B.完全不同C.只相差一个字符D.无关系
C137.类的构造函数是在定义该类的一个()时被自动调用执行的。
A.成员函数B.数据成员C.对象D.友元函数
B138.类的析构函数是一个对象被()时自动调用的。
A.建立B.撤消C.赋值D.引用
A139.一个类的构造函数通常被定义为该类的()成员。
A.公用B.保护C.私有D.友元
C140.一个类的析构函数通常被定义为该类的()成员。
A.私有B.保护C.公用D.友元
B141.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的()。
A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数
A142.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的()。
A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数
D143.假定AB为一个类,则执行“AB*s=newAB(a,5);”语句时得到的一个动态对象为_______。
A.sB.s->aC.s.aD.*s
D144.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的()。
A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数
B145.若需要使类中的一个指针成员指向一块动态存储空间,则通常在()函数中完成。
A.析构B.构造C.任一成员D.友元
A146.当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间时,它最多能够存储()个整数。
A.nB.n+1C.n-1D.1
C147.假定一个类的构造函数为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为()。
A.4和5B.5和4C.4和20D.20和5
D148.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为()。
A.1和0B.1和4C.4和1D.4和0
B149.假定AB为一个类,则()为该类的拷贝构造函数的原型说明。
A.AB(ABx);B.AB(AB&x);C.voidAB(AB&x);D.AB(intx);
C150.假定一个类的构造函数为“B(intax,intbx):
a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为()。
A.1B.2C.3D.4
D151.假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为()。
A.AB(){a=0;}B.AB(intaa=0):
a(aa){}
C.AB(intaa):
a(aa){}D.AB(){}
C152.假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为()。
A.AB(){}B.AB():
a(0){}
C.AB(intaa=0){a=aa;}D.AB(intaa){}
D153.对于任一个类,用户所能定义的构造函数的个数至多为()。
A.0B.1C.2D.任意个
B154.对于任一个类,用户所能定义的析构函数的个数至多为()。
A.0B.1C.2D.任意个
A155.假定AB为一个类,则执行“AB*px=newAB[n];”语句时将()。
A.动态分配一个数组B.动态分配一个对象
C.静态分配一个数组D.静态分配一个对象
C156.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的()。
A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数
D157.当一个类对象离开它的作用域时,系统自动调用该类的()。
A.无参构造函数B.带参构造函数C.拷贝构造函数D.析构函数
C158.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为()。
A.0B.1C.nD.n-1
D159.假定AB为一个类,则执行“ABa[10];”语句时调用该类无参构造函数的次数为()。
A.0B.1C.9D.10
A160.假定AB为一个类,则执行“AB*px=newAB[n];”语句时调用该类无参构造函数的次数为()。
A.nB.n-1C.1D.0
A161.假定AB为一个类,则执行“ABa,b(3),*p;”语句时共调用该类构造函数的次数为()。
A.2B.3C.4D.5*P无调用
B162.假定AB为一个类,则执行“ABa
(2),b[3],*p[4];”语句时共调用该类构造函数的次数为()。
A.3B.4C.5D.9B[3]调用3次
D163.假定AB为一个类,则执行“ABa,b
(2),c[3],*p=&a;”语句时共调用该类无参构造函数的次数为()。
A.5B.6C.3D.4
B164.假定AB为一个类,则执行“AB*p=newAB(1,2);”语句时共调用该类构造函数的次数为()。
A.0B.1C.2D.3
C165.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete[]px;”语句时共调用该类析构函数的次数为()。
A.0B.1C.nD.n+1
B166.对类对象成员的初始化是通过构造函数中给出的()实现的。
A.函数体B.初始化表C.参数表D.初始化表或函数体
C167.对类中常量成员的初始化是通过构造函数中给出的()实现的。
A.函数体B.参数表C.初始化表D.初始化表或函数体
C168.对类中引用成员的初始化是通过构造函数中给出的()实现的。
A.函数体B.参数表C.初始化表D.初始化表或函数体
D169.类的构造函数可以带有()个参数。
A.0B.1C.2D.任意
A170.类的析构函数可以带有()个参数。
A.0B.1C.2D.任意
C171.一个类的静态数据成员所表示属性()。
A.是类的或对象的属性B.只是对象的属性
C.只是类的属性D.类和友元的属性
D172.类的静态成员