面向对象程序设计考前练习本试卷有3种题型共120小题,作答时间为90分钟,总分120分。单选题判断题多选题一、单选题(本部分共89题,每题1分,共89分)1、在类定义的外部,可以被访问的成员有()。A.所有类成员B.private的类成员C.public或private的类成员D.public的类成员ABCD参考答案:D共137人答过,平均正确率55.47%2、下列关于C++语言类的描述中错误的是()。A.类用于描述事物的属性和对事物的操作B.类与类之间通过封装而具有明确的独立性C.类与类之间必须是平等的关系,而不能组成层次结构D.类与类之间可以通过一些方法进行通信和联络ABCD参考答案:C共117人答过,平均正确率70.09%3、定义析构函数时,应该注意()。A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句ABCD参考答案:C共116人答过,平均正确率68.97%4、下列函数中,正确的递归函数是()。A.intFun(intn){{if(n1)?return1;??else?returnn*Fun(n+1);}}B.intFun(intn){{if(abs(n)1)?return?1;?else?return?n*Fun(n/2);}}C.intFun(intn){{if(n1)?return1;?else?returnn*Fun(n*2);}}D.intFun(intn){{??if(n1)?return1;else?returnn*Fun(n-1);}}ABCD参考答案:B共115人答过,平均正确率73.04%5、在C++中编译器所生成的文件的扩展名为()。A..cppB..objC..libD..exeABCD参考答案:B共113人答过,平均正确率70.8%6、派生类的对象对它的基类成员中的()是可以访问。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员ABCD参考答案:A共112人答过,平均正确率73.21%7、C++设置虚基类的目的是()。A.消除二义性B.简化程序C.提高运行效率D.减少目标代码ABCD参考答案:A共112人答过,平均正确率71.43%8、以下关于this指针的叙述中正确的是()。A.任何与类相关的函数都有this指针B.类的成员函数都有this指针C.类的友员函数都有this指针D.类的非静态成员函数才有this指针ABCD参考答案:D共107人答过,平均正确率63.55%9、实现运行时的多态性采用()。A.重载函数B.构造函数C.析构函数D.虚函数ABCD参考答案:D共107人答过,平均正确率69.16%10、关于类定义格式的描述中,()是错的。A.一般类的定义格式分为说明部分和实现部分B.一般类中包含有数据成员和成员函数C.类中成员有三种访问数据:公有、私有和保护D.成员函数都应是公有的、数据成员都应是私有的ABCD参考答案:D共108人答过,平均正确率65.74%11、关于new运算符的下列描述中,()是错误的。A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值ABCD参考答案:D共108人答过,平均正确率63.89%12、在()情况下适宜采用inline定义内联函数。A.函数体含有循环语句B.函数体含有递归语句C.函数代码小,频繁调用D.函数代码多,不常调用ABCD参考答案:C共107人答过,平均正确率75.7%13、定义析构函数时,应该注意()。A.其函数名与类名完全相同B.函数返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句ABCD参考答案:C共107人答过,平均正确率69.16%14、关于成员函数特征的下列描述中,()是错误的。A.成员函数一定是内联函数B.成员函数可以重载C.成员函数可以设置缺省参数值D.成员函数可以是私有的ABCD参考答案:A共107人答过,平均正确率75.7%15、下列有关类的说法不正确的是()。A.类是一种用户自定义的数据类型B.只有类中的成员函数才能存取类中的私有数据C.在类中,如果不作特别说明,所有的数据均为私有类型D.在类中,如果不作特别说明,所有的成员函数均为公有类型ABCD参考答案:D共107人答过,平均正确率69.16%16、在C++程序中,对象之间的相互通信通过()。A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现ABCD参考答案:B共107人答过,平均正确率72.9%17、对于任意一个类,析构函数的个数有()。A.0B.1C.不确定D.2ABCD参考答案:B共107人答过,平均正确率70.09%18、在下列各函数中,不是类的成员函数的是()。A.构造函数B.析构函数C.友元函数D.拷贝构造函数ABCD参考答案:C共107人答过,平均正确率71.96%19、在多基继承的构造函数定义中,几个基类的构造函数之间用()分隔。A.:B.C.,D.::ABCD参考答案:C共107人答过,平均正确率70.09%20、若类A和类B的定义如下:classA{{inti,j;public:voidget();//...}};classB:A{{intk;public:voidmake(int);//...}};voidB::make(intj){{k=i*j;}}则上述定义中,非法的表达式是()。A.voidget()B.intkC.voidmake(int)D.k=i*jABCD参考答案:D共107人答过,平均正确率66.36%21、已知:print函数是一个类的常成员函数,它无返回值,下列表示中正确的是()。A.constvoidprint()B.voidconstprint()C.voidprint(const)D.voidprint()constABCD参考答案:D共106人答过,平均正确率65.09%22、下列关于运算符重载的描述中,正确的叙述是()。A.运算符重载可以改变运算数的个数B.运算符重载可以改变语法结构C.运算符重载可以构造新的运算符D.运算符重载不可以改变优先级和结合性ABCD参考答案:D共107人答过,平均正确率68.22%23、在类外部可以用p.a的形式访问派生类对象p的基类成员a,则a应是()。A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员ABCD参考答案:D共107人答过,平均正确率72.9%24、下列带缺省值参数的函数说明中,正确的说明是()。A.intFun(intx=1,inty=2,intz)B.intFun(intx,inty=2,intz=3)C.intFun(intx,inty=2,intz)D.intFun(intx=1,inty,intz=3)ABCD参考答案:A共107人答过,平均正确率71.96%25、C++源程序文件的缺省扩展名为()。A.cppB.exeC.objD.likABCD参考答案:A共107人答过,平均正确率71.96%26、存储以下数据,占用存储字节最多的是()。A.0B.‘0’C.“0”D.0.0ABCD参考答案:D共107人答过,平均正确率68.22%27、字符串”a+b=12\n”的长度为()。A.6B.7C.8D.9ABCD参考答案:B共107人答过,平均正确率66.36%28、switch语句能够改写为()语句。A.forB.ifC.doD.whileABCD参考答案:B共107人答过,平均正确率69.16%29、函数重载是指()。A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D.两个以上的函数取相同的函数名,并且函数的返回类型相同ABCD参考答案:A共107人答过,平均正确率76.64%30、编写C++程序一般需经过的几个步骤依次是()。A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接ABCD参考答案:B共107人答过,平均正确率71.03%31、设“inta=15,b=26;”,则“cout(a,b);”的输出结果是()。A.15B.26,15C.15,26D.26ABCD参考答案:D共107人答过,平均正确率67.29%32、下列的符号常量定义中,错误的定义是()。A.constM=10B.constintM=20C.constcharchD.constboolmark=trueABCD参考答案:C共107人答过,平均正确率71.96%33、在下面循环语句中循环体执行的次数为()。inti=0,s=0;while(s20){{i++;s+=i;}}A.4B.5C.6D.7ABCD参考答案:C共106人答过,平均正确率70.75%34、以下说法中正确的是()。A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返回值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中ABCD参考答案:B共106人答过,平均正确率68.87%35、假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加()。A.1B.4C.sizeof(double)D.sizeof(p)ABCD参考答案:C共107人答过,平均正确率71.96%36、()是析构函数的特征。A.一个类中只能定义一个析构函数B.析构函数名与类名不同C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数ABCD参考答案:A共106人答过,平均正确率75.47%37、关于delete运算符的下列描述中,()是错误的。A.它必须用于new返回的指针B.它也适用于空指针C.对一个指针可以连续使用多次该运算符D.指针名前只有一对方括号符,不管所删除数组的维数ABCD参考答案:C共107人答过,平均正确率68.22%38、关于类成员函数的描述中,()是错的。A.类中可以说明一个或多个成员函数B.类中的成员函数只能定义在类体外C.定义在类体外的成员函数前加inline可以成为内联函数(内置函数)D.在类体外定义成员函数时,在函数名前除了加类名外,还需加作用域符ABCD参考答案:B共107人答过,平均正确率69.16%39、假定有,则不正确的语句为()。A.BOOK*x=newbookB.BOOKx={{C++Programming,27.0}}C.BOOK*x=newBOOKD.BOOK*x=bookABCD参考答案:A共106人答过,平均正确率74.53%40、下列对引用的陈述中不正确的是()。A.每一个引用都是其所引用对象的别名,因此必须初始化B.形式上针对引用的操作实际上作用于它所引用的对象C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D.不需要单独为引用分配存储空间ABCD参考答案:C共107人答过,平均正确率74.77%41、面向对象程序设计思想的主要特征不包括()。A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性ABCD参考答案:B共107人答过,平均正确率74.77%42、类中定义的成员默认访问权限为()。A.publicB.privateC.protectedD.friendABCD参考答案:B共107人答过,平均正确率69.16%43、构造