一选择题1、面向对象程序设计中的数据隐藏指的是(D)。A.输入数据必须输入保密口令B.数据经过加密处理C.对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性2、下列关于类的访问权限的描述中,错误的是(D).。A.说明为公有的成员可以被程序中的任何代码访问B.说明为私有的成员只能被类的成员和说明为友元类的成员函数访问C.说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的派生类的成员也可以访问D.类的所有成员都可以被程序中的任何代码访问3、C中对于类中定义的成员,其默认的访问权限为(C)。A.PublicB.ProtectedC.PrivatD.Static4、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是(D)A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念5、已知类A中的一个成员函数的说明如下:voidSet(A&a);则该函数的参数“A&a”的含义是(C)。A.指向A的指针为aB.将变量a的地址赋给类AC.类A对象引用a用作函数的形参D.变量A与a按位与后作函数参数6、下列特性中,C与C++共有的是(D)。A.继承B.封装C.多态性D.函数定义不能嵌套7、关于封装,下列说法中不正确的是(D)。A.通过封装,对象的全部属性和操作结合在一起,形成一个整体B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C.通过封装,每个对象都成为相对独立的实体D.通过封装,对象的属性都是不可见的8、在一个类的定义中,包含有(C)成员的定义。A.数据B.函数C.数据和函数D.数据或函数9、在类作用域中能够通过直接使用该类的(D)成员名进行访问。A.私有B.公用C.保护D.任何10、在关键字public后面定义的成员为类的(B)成员。A.私有B.公用C.保护D.任何11、在关键字private后面定义的成员为类的(A)成员。A.私有B.公用C.保护D.任何12、假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x(a)B.x[a]C.x-aD.X.a13、假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B)。A.x.aB.x.a()C.x-aD.x-a()14、假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C)。A.px(a)B.px[a]C.px-aD.Px.a15、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x.aB.x.a()C.x-GetValue()D.x.GetValue()16、假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。A.intAA::a()B.intAA:a()C.AA::a()D.AA::inta()15、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x.aB.x.a()C.x-GetValue()D.x.GetValue()16、假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。A.intAA::a()B.intAA:a()C.AA::a()D.AA::inta()17、假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为(A)。A.aB.AA::aC.a()D.AA::a()18、在多文件结构的程序中,通常把类的定义单独存放于(D)中。A.主文件B.实现文件C.库文件D.头文件19、假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为(C)。A.abcB.*thisC.thisD.this&20、类中定义的成员默认为(B)访问属性。A.publicB.privateC.protectedD.Friend21、结构中定义的成员默认为(A)访问属性。A.publicB.privateC.protectedD.Friend22、对于一个类的构造函数,其函数名与类名(A)。A.完全相同B.基本相同C.不相同D.无关系23、对于一个类的析构函数,其函数名与类名(C)。A.完全相同B.完全不同C.只相差一个字符D.无关系24、类的构造函数是在定义该类的一个(C)时被自动调用执行的。A.成员函数B.数据成员C.对象D.友元函数25、类的析构函数是一个对象被(B)时自动调用的。A.建立B.撤消C.赋值D.引用26、一个类的构造函数通常被定义为该类的(A)成员。A.公用B.保护C.私有D.友元27、假定AB为一个类,则执行“ABx;”语句时将自动调用该类的(B)。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数28、假定一个类的构造函数为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为(C)。A.4和5B.5和4C.4和20D.20和529、假定AB为一个类,则(B)为该类的拷贝构造函数的原型说明。A.AB(ABx);B.AB(AB&x);C.voidAB(AB&x);D.AB(intx);30、假定一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为(C)。A.1B.2C.3D.431、假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为(D)。A.AB(){a=0;}B.AB(intaa=0):a(aa){}C.AB(intaa):a(aa){}D.AB(){}32、对于任一个类,用户所能定义的构造函数的个数至多为(D)。A.0B.1C.2D.任意个33、对于任一个类,用户所能定义的析构函数的个数至多为(B)。A.0B.1C.2D.任意个34、假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为(C)。A.0B.1C.nD.n-135、假定AB为一个类,则执行“ABa,b(2),c[3],*p=&a;”语句时共调用该类无参构造函数的次数为(A)。A.5B.6C.3D.436、对类对象成员的初始化是通过构造函数中给出的(B)实现的。A.函数体B.初始化表C.参数表D.初始化表或函数体37、对类中常量成员的初始化是通过构造函数中给出的(C)实现的。A.函数体B.参数表C.初始化表D.初始化表或函数体38、对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句(划线处)应该是(C)。classMyClass{public:MyClass(intx){n=x;}voidSetValue(intn1){n=n1;}private:intn;};intf(){MyClass*ptr=newMyClass(45);__________;}A.MyClass(50)B.SetValue(50)C.ptr-SetValue(50)D.ptr-n=5039、假定AB为一个类,则执行“AB*px=newAB[n];”语句时将(A)。A.动态分配一个数组B.动态分配一个对象C.静态分配一个数组D.静态分配一个对象40、设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的(C)。A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数41、通常,拷贝构造函数的参数是(B)。A.某个对象名B.某个对象的引用名C.某个对象的成员名D.某个对象的指针名42、拷贝(复制)构造函数的作用是(C)。A.进行数据类型的转换B.用对象调用成员函数C.用对象初始化对象D.用一般类型的数据初始化对象43、一个类的静态数据成员所表示属性(C)。A.是类的或对象的属性B.只是对象的属性C.只是类的属性D.类和友元的属性44、静态成员函数对类的数据成员访问(B)。A.是不允许的B.只允许是静态数据成员C.只允许是非静态数据成员D.可允许是静态数据成员或非静态数据成员45、静态数据成员的初始化是在(D)中进行的。A.构造函数B.任何成员函数C.所属类D.全局区46、引入友元的主要目的是为了(C)。A.增强数据安全性B.提高程序的可靠性C.提高程序的效率和灵活性D.保证类的封装性47、从一个基类派生出的各个类的对象之间(C)。A.共享所有数据成员,每个对象还包含基类的所有属性B.共享部分数据成员,每个对象还包含基类的所有属性C.不共享任何数据成员,但每个对象还包含基类的所有属性D.共享部分数据成员和函数成员48、如果是类B在类A的基础上构造,那么,就称(B)。A.类A为基类或父类,类B为超类或子类B.类A为基类、父类或超类,类B为派生类或子类C.类A为派生类,类B为基类D.类A为派生类或子类,类B为基类、父类或超类49、C++的继承性允许派生类继承基类的(C)。A.部分特性,并允许增加新的特性或重定义基类的特性B.部分特性,但不允许增加新的特性或重定义基类的特性C.所有特性,并允许增加新的特性或重定义基类的特性D.所有特性,但不允许增加新的特性或重定义基类的特性50、派生类的成员函数可以直接访问基类的(B)成员。A.所有B.公有和保护C.保护和私有D.私有51、对于公有继承,基类的公有和保护成员在派生类中将(D)成员。A.全部变成公有B.全部变成保护C.全部变成私有D.仍然相应保持为公有和保护52、在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为(A)方式。A.私有继承B.非私有继承C.保护继承D.公有继承53、若类A和类B的定义如下:classA{inti,j;public:intgeti(){returni;}};classB:publicA{intk;public:voidmake(){k=i*j;}};则上述中,(A)是非法的表达式。A.k=i*jB.intk;C.returni;D.voidmake();54、在下面的表达式中,不表示虚继承的是(C)。A.virtualpublicB.publicvirtualC.PublicD.Virtual55、设置虚函数的声明中,正确的是(B)。A.简化程序B.消除二义性C.提高运行效率D.减少目标代码56、下列虚基类的声明中,正确的是(D)。A.classvirtualB:publicAB.virtualclassB:publicAC.classB:publicAvirtualD.classB:virtualpublicA57、下面描述中,正确的是(A)。A.virtual可以用来声明虚函数B.含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C.即使基类的构造函数没有参数,派生类也必须建立构造函数D.静态数据成员可以通过成员初始化列表来初始化58、如果一个类至少有一个纯虚函数,那么就称该类为(A)。A.抽象类B.虚函数C.派生类D.以上都不对59、下列运算符中,(A)运算符在C++中不能重载。A.?:B.[]C.newD.&&60、在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(B)。A.作为友元函数重载的1元运算符B.作为成员函数重载的1元运算符C.作为友元函数重载的2元运算符D.作为成员函数重载的2元运算符61、在成员函数中进行双目运算符重载时,其参数表中应带有(B)个参数。A.0B.1C.2D.362、cout是I0流库预定义的(B)。A.类B.对象C.包含文件D.常量63、以下关于函数模板叙述正确的是(C)。A.函数模板也是一个具体类型的函数B.