-1-一、单项选择题1-1.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是(B)。A.面向过程B.面向对象C.安全性D.复用性1-2.C++源程序文件的缺省扩展名为(A)。A.cppB.exeC.objD.lik1-3.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。A.cppB.exeC.objD.lik1-4.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。A.cppB.exeC.objD.lik1-5.编写C++程序一般需经过的几个步骤依次是(B)。A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接1-6.用“”运算符从键盘输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车1-7.C++中声明常量的关键字是(A)。A.constB.externC.publicD.enum1-8.以下叙述中正确的是(B)A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C.在程序中使用内置函数使程序的可读性变差D.在定义函数时可以在形参表的任何位置给出缺省形参值1-9.下列的符号常变量定义中,错误的定义是(C)。A.constM=10;B.constintM=20;C.constcharch;D.constboolmark=true;1-10.函数原型语句正确的是(B)。A.intFunction(voida)B.voidFunction(int);-2-C.intFunction(a);D.voidint(doublea);1-11.以下正确的函数原型语句是(C)。A.doublefun(intx,inty)B.doublefun(intx;inty)C.doublefun(int,int);D.doublefun(intx,y);1-12.下面有关重载函数的说法中正确的是(C)。A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同1-13.函数重载是指(A)。A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的函数名字不同,但形参的个数或类型相同D.两个以上的函数取相同的函数名,并且函数的返回类型相同1-14.采用重载函数的目的是(D)。A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性1-15.以下关于函数模板叙述正确的是(C)。A.函数模板也是一个具体类型的函数B.函数模板的类型参数与函数的参数是同一个概念C.通过使用不同的类型参数,函数模板可以生成不同类型的函数定义D.用函数模板定义的函数没有类型1-16.以下正确的描述是(C)。A.不允许设置参数的默认值B.设置参数的默认值只能在定义函数时设置C.设置参数的默认值时,应该设置右边的参数D.设置参数的默认值时,应该全部参数都设置1-17.(B)是给变量取一个别名,它引入了变量的同义词。A.指针B.引用C.枚举D.结构1-18.假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为(D)。-3-A.intrx=x;B.intrx=&x;C.int*rx=&x;D.int&rx=x;1-19.下列对引用的陈述中不正确的是(C)。A.每一个引用都是其所引用对象的别名,因此必须初始化B.形式上针对引用的操作实际上作用于它所引用的对象C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D.不需要单独为引用分配存储空间1-20.下列(C)的调用方式是引用调用。A.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值1-21.在(C)情况下适宜采用inline定义内置函数。A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、且频繁调用D.函数代码多、不常调用1-22.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(A)。A.内置函数B.重载函数C.递归函数D.函数模板1-23.一个函数功能不太复杂,但要求被频繁调用,选用(A)A.内置函数B.重载函数C.递归函数D.嵌套函数1-24.说明内置函数的关键字是(A)。A.inlineB.virtualC.defineD.static1-37.对于动态分配内存空间描述正确的是(D)。A.使用new运算符分配的内存空间的长度必须是常量B.delete运算符可以释放动态的存储空间和静态的存储空间C.用new分配的内存空间是不连续的D.delete运算符只能以释放由new分配的动态存储空间1-38.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(A)。A.int*p=newint[30];B.int*p=newint(30);C.int*p=new[30];D.*p=newint[30];-4-2-1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)。A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念2-2.面向对象软件开发中使用的OOA表示(A)。A.面向对象分析B.面向对象设计C.面向对象语言D.面向对象方法2-3.面向对象软件开发中使用的OOD表示(B)。A.面向对象分析B.面向对象设计C.面向对象语言D.面向对象方法2-4.关于面向对象系统分析,下列说法中不正确的是(B)。A.术语“面向对象分析”可以用缩写OOA表示B.面向对象分析阶段对问题域的描述比设计阶段更详细C.面向对象分析包括问题域分析和应用分析两个步骤D.面向对象分析需要识别对象的内部和外部特征2-5.下列关于成员函数特征的描述中,(A)是错误的。A.成员函数一定是内置函数B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的2-6.在关键字private后面定义的成员为类的(A)成员。A.私有B.公用C.保护D.任何2-7.在一个类的定义中,包含有(C)成员的定义。A.数据B.函数C.数据和函数D.数据或函数2-8.在类作用域中能够通过直接使用该类的(D)成员名进行访问。A.私有B.公用C.保护D.任何2-9.在关键字public后面定义的成员为类的(B)成员。A.私有B.公用C.保护D.任何2-10.类中定义的成员默认为(B)访问属性。A.publicB.privateC.protectedD.friend2-11.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x(a)B.x[a]C.x-aD.x.a2-12.假定AA为一个类,a()为该类公有的函数成员,x为该类-5-的一个对象,则访问x对象中函数成员a()的格式为(B)。A.x.aB.x.a()C.x-aD.x-a()2-13.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C)。A.px(a)B.px[a]C.px-aD.px.a2-14.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x.aB.x.a()C.x-GetValue()D.x.GetValue()2-14.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。A.intAA::a()B.intAA:a()C.AA::a()D.AA::inta()2-15.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字(B)放在函数原型或函数头的前面。A.inB.inlineC.inLineD.InLiner2-16.下列特性不是面向对象程序设计语言所特有的是(D)。A.数据封装B.继承C.多态性D.模板3-1.关于构造函数,下列说法不正确的是(D)。A.构造函数名字和类名相同B.构造函数在创建对象时自动执行C.构造函数无任何函数返回类型D.构造函数有且只有一个3-2.类的构造函数是在定义该类的一个(C)时被自动调用执行的。A.成员函数B.数据成员C.对象D.友元函数3-3.一个类的构造函数通常被定义为该类的(A)成员。A.公用B.保护C.私有D.友元3-4.关于构造函数特点描述中,错误的是(A)。A.定义构造函数必须指出类型B.构造函数的名字与该类的类名相同C.一个类中可以定义0个至多个构造函数D.构造函数是一个成员函数-6-3-5.对于一个类的构造函数,其函数名与类名(A)。A.完全相同B.基本相同C.不相同D.无关系3-6.每个类(C)构造函数。A.只能有一个B.可以有公用的C.可以有多个D.只可有缺省的3-7.对类对象成员的初始化是通过构造函数中给出的(B)实现的。A.函数体B.参数初始化表C.参数表D.参数初始化表或函数体3-8.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的(B).。A.有参构造函数B.无参构造函数C.复制构造函数D.赋值重载函数3-9.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的(A)。A.带参构造函数B.无参构造函数C.复制构造函数D.赋值重载函数3-10.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTestobjTest;”语句时将自动调用该类的(B)。A.有参构造函数B.无参构造函数C.复制构造函数D.赋值构造函数3-11.构造函数不具备的特征是(D)。A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明3-12.假定一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为(C)。A.1B.2C.3D.43-13.假定一个类的构造函数为“A(intaa,intbb){a=aa;b=aa*bb;}”,则执行“Ax(4,5);”语句后,x.a和x.b的值分别为(C)A.4和5B.5和4C.4和20D.20和53-14.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为(D)。A.1和0B.1和4C.4和1D.4和0-7-3-15.假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为(C)。A.AB(){}B.AB():a(0){}C.AB(intaa=0){a=aa;}D.AB(intaa){}3-16.类的析构函数是一个对象被(B)时自动调用的。A.建立B.撤消C.赋值D.引用3-17.能够释放对象所占资源的是(A)。A.析构函数B.数据成员C.构造函数D.静态成员函数3-18.类的析构函数的作用是(D).。A.一般成员函数B.类的初始化C.对象的初始化D.对象释放后的操作3-19.对于一个类的析构函数,其函数名与类名(C)。A.完全相同B.完全不同C.只相差一个字符D.无关系3-20.一个类的析构函数通常被定义为该类的(C)成员。A.私有B.保护C.公用D.友元3-21.定义析构函数时,应该注意(C)。A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句3-22.类的析构函数可以带有(A)个参数。A.0B.1C.2D.任意3-23.类的析构函数是在(C)调用的。A.类创建时B.创建对象时C.对象生命期结束时D.不自动调用3-24.当一个类对象离开它的作用域时,