程序设计二复习题库.docx
- 文档编号:28472756
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:35
- 大小:28.65KB
程序设计二复习题库.docx
《程序设计二复习题库.docx》由会员分享,可在线阅读,更多相关《程序设计二复习题库.docx(35页珍藏版)》请在冰豆网上搜索。
程序设计二复习题库
1.C++语言是从早期的C语言逐渐发展演变而来的。
与C语言相比,它在求解问题方法上进行的最大改进是()。
A、面向过程 B、面向对象 C、安全性 D、复用性
2.关于构造函数,下列说法不正确的是()。
A、构造函数名字和类名相同B、构造函数在创建对象时自动执行
C、构造函数无任何函数返回类型D、构造函数有且只有一个
3.如果类A被说明成类B的友元,则()。
A、类A的成员即类B的成员 B、类B的成员即类A的成员
C、类A的成员函数不得访问类B的成员 D、类B不一定是类A的友元
4.如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问类型分别是()。
A、public和publicB、public和protected
C、protected和publicD、protected和protected
5.使用派生类的主要原因是()。
A、提高代码的可重用性B、提高程序的运行效率
C、加强类的封装性D、实现数据的隐藏
6.关于虚函数,正确的是()。
A、构造函数不能是虚函数B、析构函数不能是虚函数
C、虚函数可以是友元函数D、虚函数可以是静态成员函数
7.要实现动态链接,派生类中的虚函数()。
A、返回的类型可以与虚函数的原型不同
B、参数个数可以与虚函数的原型不同
C、参数类型可以与虚函数的原型不同
D、以上都不对
8.在语句cout< A、变量名 B、类名 C、对象名 D、函数名 9.有关运算符重载正确的描述是()。 A、C++语言允许在重载运算符时改变运算符的操作数个数 B、C++语言允许在重载运算符时改变运算符的优先级 C、C++语言允许在重载运算符时改变运算符的结合性 D、C++语言允许在重载运算符时改变运算符的原来的功能 10.template Tsquare(Tx) {returnx*x;} 其中T是()。 A、函数形参 B、函数实参 C、模板形参 D、模板实参 11.函数重载是指()。 A、两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B、两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C、两个以上的函数名字不同,但形参的个数或类型相同 D、两个以上的函数取相同的函数名,并且函数的返回类型相同 12.假定A类已经定义,对于以A类为基类的单一继承类B类,以下定义中正确的是()。 A、classB: publicA{//…};B、classA: publicB{//…}; C、classB: publicclassA{//…};D、classA: classBpublic{//…}; 13.下面叙述不正确的是()。 A、派生类一般都用公有派生 B、对基类成员的访问必须是无二义性的 C、赋值兼容原则也适用于多重继承的组合 ----------------------------------------装--------------------------------------订-------------------------------------线---------------------------------------------------- D、基类的公有成员在派生类中仍然是公有的 14.C++可以采用动态内存分配在运行时为指针分配内存。 下面对一个100个元素的动态数组进行动态内存分配和释放的是()。 A、int*pi=newint[100];deletepi;pi=NULL; B、int*pi=newint(100);delete[]pi;pi=NULL; C、int*pi=newint(100);delete()pi;pi=NULL; D、int*pi=newint[100];delete[]pi;pi=NULL; 15.下列语句中错误的是()。 A、int*p=newint(100);B、int*p=newint[100]; C、int*p=newint;D、int*p=newint[40](0); 16.编写C++程序一般需经过的几个步骤依次是( )。 A、编辑、调试、编译、连接B、编辑、编译、连接、运行 C、编译、调试、编辑、连接D、编译、编辑、连接、运行 17.面向对象程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。 A、对数据的操作 B、信息 C、数据隐藏 D、数据抽象 18.派生类对象可访问基类中的什么成员( )? A、公有继承的公有成员B、公有继承的私有成员 C、公有继承的保护成员D、私有继承的共有成员 19.重载赋值操作符时,应声明为()函数。 A、友元 B、虚 C、成员 D、多态 20.语句ofstreamf(“SALARY.DAT”,ios: : app|ios: : binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且()。 A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B、若文件存在,将其置为空文件;若文件不存在,打开失败 C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D、若文件存在,打开失败;若文件不存在,建立一个新文件 21.在C++语言中,自定义的标识符()。 A、能使用关键字并且不区分大小写 B、不能使用关键字并且不区分大小写 C、能使用关键字并且区分大小写 D、不能使用关键字并且区分大小写 22.对类的构造函数和析构函数描述正确的是()。 A、构造函数可以重载,析构函数不能重载 B、构造函数不能重载,析构函数可以重载 C、构造函数可以重载,析构函数也可以重载 D、构造函数不能重载,析构函数也不能重载 3.类的析构函数的作用是()。 A、一般成员函数B、类的初始化C、对象初始化D、删除对象。 4.下面对于友元函数描述正确的是()。 A、友元函数的实现必须在类的内部定义 B、友元函数是类的成员 C、友元函数破坏了类的封装性和隐藏性 D、友元函数不能访问类的私有成员 5.C++中的类有两种用法: 一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。 A、复用B、继承C、封装D、引用 6.下列虚基类的声明中,正确的是()。 A、classvirtualB: publicA B、virtualclassB: publicA C、classB: publicAvirtual D、classB: virtualpublicA 7.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为() A、mainB、MAINC、nameD、function 8.下列有关运算符重载描述正确的是() A、运算符的重载是多态性的一种表现 B、C++可以通过运算符的重载创造新的运算符 C、C++中所有运算符都可以作为非成员函数重载 D、重载运算符时可以改变其结合性 9.classMyclass{ intvalue; public: Myclass(intn): value(n){} intgetValue()const{returnvlaue;} }; 则类的构造函数的个数是() A、1个B、2个C、3个D、4个 10.在语句cout< A、变量名 B、类名 C、对象名 D、函数名 11.模板的使用是为了()。 A、提高代码的可重用性B、提高代码的运行效率 C、加强类的封装性D、实现多态性 12.若Fraction为类重载前增运算符++,应在类体中将其声明为()。 A、Fraction&operator++();B、Fraction&operator++(int); C、friendFraction&operator++();D、friendFraction&operator++(int) 13.关于动态存储分配,下列说法正确的是()。 A、new和delete是C++语言中专门用于动态内存分配和释放的函数 B、动态分配的内存空间也可以被初始化 C、当系统内存不够时会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间 D、当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new 14.在C++中用来实现运行时多态性的是()。 A、重载函数B、析构函数C、构造函数D、虚函数 15.在一个类体的下列声明中,正确的纯虚函数声明是()。 A、virtualvoidvf()=0;B、voidvf(int)=0; C、virtualintvf(int);D、virtualvoidvf(int){} 1.C++语言是从早期的C语言逐渐发展演变而来的。 与C语言相比,它在求解问题方法上进行的最大改进是。 A.面向过程 B.面向对象 C.安全性 D.复用性 2.如果类A被说明成类B的友元,则。 A.类A的成员即类B的成员B.类B的成员即类A的成员 C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元 3.通过运算符重载,可以改变运算符原有的。 A.操作数类型B.操作数个数C.优先级D.结合性 4.下面描述中,表述错误的是。 A.公有继承时基类中的public成员在派生类中仍是public的 B.公有继承时基类中的private成员在派生类中仍是private的 C.公有继承时基类中的protected成员在派生类中仍是protected的 D.私有继承时基类中的public成员在派生类中是private的 5.下列关于this指针的描述中,正确的是。 A.类的非静态成员函数都有this指针B.类的友元函数都有this指针 C.任何与类相关的函数都有this指针D.类的成员函数都有this指针 6.假定类A已经定义,对于以类A为基类的单一继承B类,以下定义中正确的是。 A.classB: publicA{//…};B.classA: publicB{//…}; C.classB: publicclassA{//…};D.classA: classBpublic{//…}; 7.template Tsquare(Tx) {returnx*x;} 其中T是。 A.函数形参 B.函数实参 C.模板形参 D.模板实参 8.要实现动态链接,派生类中的虚函数。 A.返回的类型可以与虚函数的原型不同B.参数个数可以与虚函数的原型不同 C.参数类型可以与虚函数的原型不同D.以上都不对 9.函数重载是指。 A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的函数名字不同,但形参的个数或类型相同 D.两个以上的函数取相同的函数名,并且函数的返回类型相同 10.C++可以采用动态内存分配在运行时为指针分配内存。 下面对一个100个元素的动态数组进行动态内存分配和释放的是。 A.int*pi=newint[100];deletepi;pi=NULL; B.int*pi=newint(100);delete[]pi;pi=NULL; C.int*pi=newint(100);delete()pi;pi=NULL; D.int*pi=newint[100];delete[]pi;pi=NULL; 11.语句ofstreamf(“SALARY.DAT”,ios: : app|ios: : binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且。 A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败 C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 12.下面对于友元函数描述正确的是。 A.友元函数的实现必须在类的内部定义B.友元函数是类的成员 C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员 13.下列虚基类的声明中,正确的是。 A.classvirtualB: publicAB.virtualclassB: publicA C.classB: publicAvirtualD.classB: virtualpublicA ----------------------------------------装--------------------------------------订-------------------------------------线---------------------------------------------------- 14.在一个类体的下列声明中,正确的纯虚函数声明是。 A.virtualvoidvf()=0;B.voidvf(int)=0; C.virtualintvf(int);D.virtualvoidvf(int){} 15.有如下类的定义: classPoint{ private: staticinthow_many; }; how_many=0; 要初始化Point类的静态成员how_many,下划线处应填写。 A.intB.staticintC.intPoint: : D.staticintPoint: : 1、函数重载是指()。 A、两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B、两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C、两个以上的函数名字不同,但形参的个数或类型相同 D、两个以上的函数取相同的函数名,并且函数的返回类型相同 2、编写C++程序一般需经过的几个步骤依次是() A、编辑、调试、编译、连接B、编辑、编译、连接、运行 C、编译、调试、编辑、连接D、编译、编辑、连接、运行 3、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的 A、私有成员B、公有成员() C、保护成员D、保护成员或私有成员 4、在类中,正确的纯虚函数声明是() A、virtualvoidf(int){}B、voidf(int)=0; C、virtualintf(int);D、virtualvoidf()=0; 5、关于this指针使用说法正确的是() A、保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B、保证基类私有成员在子类中可以被访问。 C、保证基类保护成员在子类中可以被访问。 D、保证基类公有成员在子类中可以被访问。 6、有如下类的定义: classPoint{ private: staticinth; }; h=0; 要初始化Point类的静态成员h,下划线处应填写() A、intB、staticintC、intPoint: : D、staticintPoint: : 7、template Tfun(Tx) {returnx+x;} 其中T是() A、函数形参 B、函数实参 C、模板形参 D、模板实参 8、假定类A已经定义,对于以类A为基类的单一继承B类,以下定义中正确的是() A、classB: publicA{//…};B、classA: publicB{//…}; C、classB: publicclassA{//…};D、classA: classBpublic{//…}; 9、假定一个类定义如下classA{private: inta,b;public: A(intaa,intbb) {a=aa--;b=a*bb;}};则执行Ax(4,5);语句后,x.a和x.b的值分别为() A、3和15B、5和4 C、4和20D、20和5 10、通过运算符重载,可以改变运算符原有的() A、操作数个数B、操作数类型C、优先级D、结合性 11、关于虚函数的描述中,()是正确的。 A、虚函数是一个static类型的成员函数 B、虚函数是一个非成员函数 C、基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数 D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型 12、如果类A被说明成类B的友元,则() A、类A的成员即类B的成员B、类B的成员即类A的成员 C、类A的成员函数不得访问类B的成员D、类B不一定是类A的友元 ----------------------------------------装--------------------------------------订-------------------------------------线---------------------------------------------------- 13、下面叙述不正确的是() A、派生类一般都用公有派生 B、对基类成员的访问必须是无二义性的 C、赋值兼容规则也适用于多重继承的组合 D、基类的公有成员在派生类中仍然是公有的 14、下列虚基类的声明中,正确的是() A、classB: virtualpublicAB、virtualclassB: publicA C、classB: publicAvirtualD、classvirtualB: publicA 15、语句ofstreamf(“d: \\article.dat”,ios: : app|ios: : binary);的功能是建立流对象f,试图打开文件article.dat并与之连接,并且() A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B、若文件存在,将其置为空文件;若文件不存在,打开失败 C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D、若文件存在,打开失败;若文件不存在,建立一个新文件 1、构造函数是在()时被执行。 A、程序编译B、创建对象 C、创建类D、程序装入内存 2、使用派生类的主要原因是() A、提高代码的重用性 B、提高程序的运行效率 C、加强类的封装性 D、实现数据的隐藏 3、语句ofstreamf(“d: \\data.dat”,ios: : app|ios: : binary);的功能是建立流对象f,试图打开文件data.dat并与之连接,并且() A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B、若文件存在,将其置为空文件;若文件不存在,打开失败 C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D、若文件存在,打开失败;若文件不存在,建立一个新文件 4、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的 A、保护成员B、公有成员() C、私有成员D、保护成员或私有成员 5、有如下类的定义: classRectangle{ private: staticintx; }; x=0; 要初始化Rectangle类的静态成员x,下划线处应填写() A、intB、staticintC、intRectangle: : D、staticintRectangle: : 6、template Tfun(Tx) {returnx*x;} 其中T是() A、函数形参 B、模板形参 C、函数实参 D、模板实参 7、假定类A已经定义,对于以类A为基类的单一继承B类,以下定义中正确的是() A、classB: publicA{//…};B、classA: publicB{//…}; C、classB: publicclassA{//…};D、classA: classBpublic{//…}; 8、假定一个类定义如下classA{private: inta,b;public: A(intaa,intbb): a(aa),b(bb){a++;}}则执行Ax(7,8);语句后,x.a和x.b的值分别为() A、7和15B、7和8 C、8和7D、8和8 9、如果类A被说明成类B的友元,则() A、类A的成员即类B的成员B、类B不一定是类A的友元 C、类A的成员函数不得访问类B的成员D、类B的成员即类A的成员 10、有关运算符重载正确的描述是() A.C++语言允许在重载运算符时改变运算符的操作数个数 B.C++语言允许在重载运算符时改变运算符的优先级 C.C++语言允许在重载运算符时改变运算符的结合性 D.C++语言允许在重载运算符时改变运算符的原来的功能 11、面向对象程序设计将数据与()在一起,作为一个相互依存、不可分割的整体来处理 A、对数据的操作B、信息 C、数据隐藏D、数据抽象 12、有关多态性说法不正确的是() A、运行时的多态性可通过模板和虚函数实现 B、编译时的多态性可通过函数重载实现 C、C++语言的多态性分为编译时的多态性和运行时的多态性 D、实现运行时多态性的机制称为动态多态性 ----------------------------------------装--------------------------------------订-------------------------------------线---------------------------------------------------- 13、下面叙述不正确的是() A、派生类一般都用公有派生 B、对基类成员的访问必须是无二义性的 C、赋值兼容规则也适用于多重继承的组合 D、基类的公有成员在派生类中仍然是公有的 14、友元关系不能() A、提高程序的运行效率 B、是类与类的关系 C、是一个类的成员函数与另一个类的关系 D、继承 15、下列语句中错误的是() A、int*pt=newint(100)B、int*pt=newint[100] C、int*pt=newintD、int*pt=newint[100](0) 1.下面()的叙述不符合赋值兼容规则。 A.派生类的对象可以赋值给基类的对象 B.基类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习 题库