选择题1、关键字(C)说明对象或变量初始化后不会被修改。A.staticB.publicC.constD.inline2、如果调用带有默认参数的函数时缺少一个参数,则(D)参数就作为这一参数。A.第一个B.最后一个C.中间一个D.以上都不是3、成员函数可声明为静态的,条件是它不访问(C)类成员A.静态B.常数C.非静态D.公共4、内联函数执行起来比标准函数(B)。A.更慢B.更快C.次数更多D.以上都不是5、默认参数的值由(A)提供。A.该函数B.调用程序C.上述二者D.以上都不是6、在C++中,混合类型表达式(A)。A.允许存在B.为一错误C.从int到floatD.从float到int7、表达式long(intVar)也可表示为(C)。A.intvar=long;B.intVar(long)C.(long)intVarD.以上都不是8、静态数据成员的生存期(A)。A.与整个程序相同B.不长于类的生存期C.取决于创建的对象数D.以上都不是9、要让一个类中的所有对象具有共同的数据,请使用(C)。A.常数成员变量B.私有数据成员C.静态数据成员D.以上都是10、设置虚基类的目的是:(B)A.简化程序B.消除二义性C.提高运行效率D.减少目标代码11、C++是(C)。A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D.非结构化的程序设计语言12、面向对象程序设计思想的主要特征中不包括(D)。A.封装性B.多态性C.继承性D.功能分解,逐步求精13、若定义:stringstr;当语句cinstr;执行时,从键盘输入:MicrosoftVisualStudio6.0!cin.getline()所得的结果是str=(B)。A.MicrosoftVisualStudio6.0!B.MicrosoftC.MicrosoftVisualD.MicrosoftVisualStudio6.014、下列语句中,将函数intsum(intx,inty)正确重载的是(C)。A.floatsum(intx,inty);B.intsum(inta,intb);C.floatsum(floatx,floaty);D.doublesum(inty,intx);15、下列表示引用的方法中,(A)是正确的。已知:inta=1000;A.int&x=a;B.char&y;C.int&z=1000;D.float&t=&a;16、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)。A.内联函数B.重载函数C.递归调用D.嵌套调用17、下列有关C++类的说法中,不正确的是(D)。A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的18、已知X类,则当程序执行到语句:Xarray[3];时,调用了(D)次构造函数。A.0B.1C.2D.319、下面说法中,正确的是(B)A.一个类只能定义一个构造函数,但可以定义多个析构函数B.一个类只能定义一个析构函数,但可以定义多个构造函数C.构造函数与析构函数同名,只是名字前加了一个求反符号(~)D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以20、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,(A)是正确的。A.voidprint()const;B.constvoidprint();C.voidconstprint();D.voidprint(const);21、下面描述中,表达错误的是(B)A.公用继承时基类中的public成员在派生类中仍是public的B.公用继承时基类中的private成员在派生类中仍是private的C.公用继承时基类中的protected成员在派生类中仍是protected的D.私有继承时基类中的public成员在派生类中是private的22、下面(B)的叙述不符合赋值兼容规则。A.派生类的对象可以赋值给基类的对象B.基类的对象可以赋值给派生类的对象C.派生类的对象可以初始化基类的对象D.派生类的对象的地址可以赋值给指向基类的指针23、关于虚函数的描述中,(C)是正确的。A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型24、下列关于静态数据成员的说法,不正确的是(C)。A.类中定义的公用静态数据成员,可以通过类的对象来访问B.类中定义的所有静态数据成员,都必须在类外初始化C.静态数据成员不是所有对象所共用的D.普通的成员函数可以直接访问类中的静态数据成员25、下面对模板的声明,正确的是(C)。A.templateTB.templateclassT1,T2C.templateclassT1,classT2D.templateclassT1;classT226、下列的各类函数中,(C)不是类的成员函数A.构造函数B.析构函数C.友元函数D.复制构造函数27、关于C++与C语言关系的描述中,(D)是错误的。A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的28、已知:intm=10;下列表示引用的方法中,(A)是正确的。A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m;29、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(A)。A.函数的返回值类型B.参数的类型C.函数名称D.参数个数下30、已知X类,则当程序执行到语句X*array[3];时,调用了(A)次构造函数。A.0B.1C.2D.331、有关析构函数的说法,不正确的是(B)。A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型32、类定义的内容允许被其对象无限制地存取的是(C)。A.private部分B.protected部分C.public部分D.以上都不对33、关于常数据成员的说法,不正确的是(D)。A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中B.常数据成员必须进行初始化,并且不能被更新C.常数据成员通过构造函数的成员初始化列表进行初始化D.常数据成员可以在定义时直接初始化34、运用运算符delete删除一个动态对象时(C)。A.系统首先为该动态对象调用构造函数,再释放其占用的内存B.系统首先释放该动态对象占用的内存,再为其调用构造函数C.系统首先为该动态对象调用析构函数,再释放其占用的内存D.系统首先释放动态对象占用的内存,再为其调用析构函数35、可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是(D)。A.私有继承的公用成员B.公用继承的私有成员C.公用继承的保护成员D.公用继承的公用成员36、在公用继承方式下,有关派生类对象和基类对象的关系,不正确的叙述是(C)。A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针37、在C++中,用于实现动态多态性的是(D)。A.内联函数B.重载函数C.模板函数D.虚函数38、不能说明为虚函数的是(B)。A.析构函数B.构造函数C.类的成员函数D.以上都不对39、如果一个类至少有一个纯虚函数,那么就称该类为(A)。A.抽象类B.派生类C.纯基类D.以上都不对40、下列运算符中,(C)运算符在C++中不能被重载。A.&&B.[]C.::D.new41、模板的使用实际上是将类模板实例化成一个(C)。A.函数B.对象C.类D.抽象类42、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为(C)。A.MyClass(MyClassx)B.MyClass&(MyClassx)C.MyClass(MyClass&x)D.MyClass(MyClass*x)43、编写C++程序一般需经过的几个步骤依次是(B)A.编辑、调试、编译、连接B.编辑、编译、连接、运行C.编译、调试、编辑、连接D.编译、编辑、连接、运行44、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(A)A.类B.对象C.函数体D.数据块45、对基类和派生类的关系描述中,错误的是(B)A.派生类是基类的具体化B.基类继承了派生类的属性C.派生类是基类定义的延续D.派生类是基类的特殊化46、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是(B)A.面向过程B.面向对象C.安全性D.复用性47、下面描述中,表达错误的是(B)A.公用继承时基类中的public成员在派生类中仍是public的B.公用继承时基类中的private成员在派生类中仍是private的C.公用继承时基类中的protected成员在派生类中仍是protected的D.私有继承时基类中的public成员在派生类中是private的48、对使用关键字new所开辟的动态存储空间,释放时必须使用(C)A.freeB.createC.deleteD.realse49、设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是(A)A.A类构造函数先执行B.成员构造函数先执行C.两者并行执行D.不能确定50、要让一个类中的所有对象具有共同的数据,请使用(C)。A.常数成员变量B.私有数据成员C.静态数据成员D.以上都是51、C++是(C)。A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D.非结构化的程序设计语言52、一个类可包含析构函数的个数是(B)A.0个B.1个C.至少一个D.0个或多个53、在函数定义中的形参属于(B)A.全局变量B.局部变量C.静态变量D.寄存器变量54、关于对象概念的描述中,说法错误的是(A)A.对象就是C语言中的结构变量B.对象代表着正在创建的系统中的一个实体C.对象是类的一个变量D.对象之间的信息传递是通过消息进行的55、下面叙述不正确的是(D)A.派生类一般都用公有派生B.对基类成员的访问必须是无二义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的56、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的(A)A.私有成员B.公有成员C.保护成员D.保护成员或私有成员57、关于this指针使用说法正确的是(A)A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B.保证基类私有成员在子类中可以被访问。C.保证基类保护成员在子类中可以被访问。D.保证基类公有成员在子类中可以被访问。58、所谓多态性是指(B)A.不同的对象调用不同名称的函数B.不同的对象调用相同名称的函数C.一个对象调用不同名称的函数D.一个对象调用不同名称的对象59、假设ClassY:publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为(A)A.X,Y;Y,XB.X,Y;X,YC.Y,X;X,YD.Y,X;Y,X60、假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为(B)A.x.aB.x.a()C.x-aD.(*x).a()61、数下下列有关C++类的说法中,不正确的是(D)。A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有