您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > C++综合练习(带答案)
C++面向对象程序设计习题册姓名学号学院班级1第三章类和对象一、选择题1.在一个类的定义中,包含有(C)成员的定义。A.数据B.函数C.数据和函数D.数据或函数2.在类作用域中能够通过直接使用该类的(D)成员名进行访问。A.私有B.公用C.保护D.任何3.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x(a)B.x[a]C.x-aD.x.a4.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B)。A.x.aB.x.a()C.x-aD.x-a()5.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C)。A.px(a)B.px[a]C.px-aD.px.a6.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x.aB.x.a()C.x-GetValue()D.x.GetValue()7.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。A.intAA::a()B.intAA:a()2C.AA::a()D.AA::inta()8.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为(A)。A.aB.AA::aC.a()D.AA::a()9.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字(B)放在函数原型或函数头的前面。A.inB.inlineC.inLineD.InLiner10.在多文件结构的程序中,通常把类的定义单独存放于(D)中。A.主文件B.实现文件C.库文件D.头文件11.在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于(B)中。A.主文件B.实现文件C.库文件D.头文件12.在多文件结构的程序中,通常把含有main()函数的文件称为(A)。A.主文件B.实现文件C.程序文件D.头文件13.在C++程序中使用的cin标识符是系统类库中定义的(A)类中的一个对象。A.istreamB.ostreamC.iostreamD.fstream14.在C++程序中使用的cout标识符是系统类库中定义的(B)类中的一个对象。A.istreamB.ostreamC.iostreamD.fstream15.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为(D)。A.intB.charC.AAD.AA*316.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为(C)。A.abcB.*thisC.thisD.this&17.假定AA是一个类,“AA&abc();”是该类中一个成员函数的原型,若该函数存在对*this赋值的语句,当用x.abc()调用该成员函数后,x的值(A)。A.已经被改变B.可能被改变C.不变D.不受函数调用的影响18.假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值(C)。A.已经被改变B.可能被改变C.不变D.受到函数调用的影响19.类中定义的成员默认为(B)访问属性。A.publicB.privateC.protectedD.friend20.结构中定义的成员默认为(A)访问属性。A.publicB.privateC.protectedD.friend21.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为(C)。A.nB.n+1C.n-1D.n-222.对于一个类的构造函数,其函数名与类名(A)。A.完全相同B.基本相同C.不相同D.无关系23.对于一个类的析构函数,其函数名与类名(C)。A.完全相同B.完全不同C.只相差一个字符D.无关系24.类的构造函数是在定义该类的一个(C)时被自动调用执行的。4A.成员函数B.数据成员C.对象D.友元函数25.类的析构函数是一个对象被(B)时自动调用的。A.建立B.撤消C.赋值D.引用26.一个类的构造函数通常被定义为该类的(A)成员。A.公用B.保护C.私有D.友元27.一个类的析构函数通常被定义为该类的(C)成员。A.私有B.保护C.公用D.友元28.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的(B)。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数29.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的(A)。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数30.假定AB为一个类,则执行“AB*s=newAB(a,5);”语句时得到的一个动态对象为____D___。A.sB.s-aC.s.aD.*s31.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的(D)。A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数32.若需要使类中的一个指针成员指向一块动态存储空间,则通常在(B)函数中完成。A.析构B.构造C.任一成员D.友元33.当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间5时,它最多能够存储(A)个整数。A.nB.n+1C.n-1D.134.假定一个类的构造函数为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为(C)。A.4和5B.5和4C.4和20D.20和535.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为(D)。A.1和0B.1和4C.4和1D.4和036.假定AB为一个类,则(B)为该类的拷贝构造函数的原型说明。A.AB(ABx);B.AB(AB&x);C.voidAB(AB&x);D.AB(intx);37.假定一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为(C)。A.1B.2C.3D.438.假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为(D)。A.AB(){a=0;}B.AB(intaa=0):a(aa){}C.AB(intaa):a(aa){}D.AB(){}39.假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为(C)。A.AB(){}B.AB():a(0){}C.AB(intaa=0){a=aa;}D.AB(intaa){}40.对于任一个类,用户所能定义的构造函数的个数至多为(D)。A.0B.1C.2D.任意个641.对于任一个类,用户所能定义的析构函数的个数至多为(B)。A.0B.1C.2D.任意个42.假定AB为一个类,则执行“AB*px=newAB[n];”语句时将(A)。A.动态分配一个数组B.动态分配一个对象C.静态分配一个数组D.静态分配一个对象43.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的(C)。A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数44.当一个类对象离开它的作用域时,系统自动调用该类的(D)。A.无参构造函数B.带参构造函数C.拷贝构造函数D.析构函数45.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为(C)。A.0B.1C.nD.n-146.假定AB为一个类,则执行“ABa[10];”语句时调用该类无参构造函数的次数为(D)。A.0B.1C.9D.1047.假定AB为一个类,则执行“AB*px=newAB[n];”语句时调用该类无参构造函数的次数为(A)。A.nB.n-1C.1D.048.假定AB为一个类,则执行“ABa,b(3),*p;”语句时共调用该类构造函数的次数为(A)。A.2B.3C.4D.549.假定AB为一个类,则执行“ABa(2),b[3],*p[4];”语句时共调用该类构造7函数的次数为(B)。A.3B.4C.5D.950.假定AB为一个类,则执行“ABa,b(2),c[3],*p=&a;”语句时共调用该类无参构造函数的次数为(D)。A.5B.6C.3D.451.假定AB为一个类,则执行“AB*p=newAB(1,2);”语句时共调用该类构造函数的次数为(B)。A.0B.1C.2D.352.假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete[]px;”语句时共调用该类析构函数的次数为(C)。A.0B.1C.nD.n+153.对类对象成员的初始化是通过构造函数中给出的(D)实现的。A.函数体B.初始化表C.参数表D.初始化表或函数体54.对类中常量成员的初始化是通过构造函数中给出的(C)实现的。A.函数体B.参数表C.初始化表D.初始化表或函数体55.对类中引用成员的初始化是通过构造函数中给出的(C)实现的。A.函数体B.参数表C.初始化表D.初始化表或函数体56.一个类的静态数据成员所表示属性(C)。A.是类的或对象的属性B.只是对象的属性C.只是类的属性D.类和友元的属性57.类的静态成员的访问控制(D)。8A.只允许被定义为privateB.只允许被定义为private或protectedC.只允许被定义为publicD.可允许被定义为private、protected或public58.静态成员函数对类的数据成员访问(B)。A.是不允许的B.只允许是静态数据成员C.只允许是非静态数据成员D.可允许是静态数据成员或非静态数据成员59.被非静态成员函数访问的类的数据成员(A)。A.可以是非静态数据成员或静态数据成员B.不可能是类的静态数据成员C.只能是类的非静态数据成员D.只能是类的静态数据成员60.静态数据成员的初始化是在(D)中进行的。A.构造函数B.任何成员函数C.所属类D.全局区61.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的(D)。A.只能是公有成员B.只能是保护成员C.只能是除私有成员之外的任何成员D.具有任何权限的成员62.引入友元的主要目的是为了(C)。A.增强数据安全性B.提高程序的可靠性C.提高程序的效率和灵活性D.保证类的封装性63.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明9(A)。A.需加上类域的限定B.不需加上类域的限定C.类域的限定可加可不加D.不需要任何限定64.一个类的友元不是该类的成员,与该类的关系密切,所以它(D)。A.有this指针,有默认操作的对象B.没有this指针,可以有默认操作的对象C.有this指针,不能执行默认操作D.没有this指针,也就没有默认操作的对象二、程序填充题1.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素,进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序10voidPrintA();//依次输出数组a中的前n个元素};该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int____(1)__AA::Max()___{intx=a[0];for(inti=1;in;i++)if(a[i]x)___(2)x=a[
本文标题:C++综合练习(带答案)
链接地址:https://www.777doc.com/doc-2901819 .html