【期末高分题集】[西安交通大学]《面向对象程序设计》考核必备21

奥鹏期末考核

3054–科目名《面向对象程序设计奥鹏期末考试题库合集

单选题:
(1)下列关于运算符重载的描述中,错误的是( )。
A.运算符重载不可以改变操作数的个数
B.运算符重载不可以改变运算符的功能
C.运算符重载不可以改变结合方向
D.运算符重载不可以改变运算优先级
答案问询微信:424329

(2)用“”运算符从键盘输入多于一个数据时,各数据之间应使用( )符号作为分隔符。
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
答案问询微信:424329

(3)对于类中定义的成员,其隐含访问权限为()。
A.public
B.ptotected
C.private
D.static
答案问询微信:424329

(4)如果一个类至少有一个纯虚函数,那么就称该类为_____。
A.抽象类
B.虚基类
C.派生类
D.其他都不对
答案问询微信:424329

(5)派生类的构造函数的成员初始化列表中,不能包含()。
A.基类的构造函数;
B.派生类中子对象的初始化;
C.基类的子对象初始化;
D.派生类中一般数据成员的初始化;
答案问询微信:424329

(6)不可以成为类的数据成员的是()。
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
答案问询微信:424329

(7)面向对象方法的多态性是指( )。
A.一个类可以派生出多个特殊类
B.一个对象在不同的运行环境中可以有不同的变体
C.针对一消息,不同的对象可以以适合自身的方式加以响应
D.一个对象可以是由多个其他对象组合而成的
答案问询微信:424329

(8)C++对C语言作了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成为面向对象。
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省值
C.规定函数说明必须用原型
D.引进了类和对象的概念
答案问询微信:424329

(9)当使用ofstream流类定义一个输出流对象并打开一个文件时,文件的默认打开选择项是( )。
A.ios::in
B.ios::out
C.ios::binary
D.ios::app
答案问询微信:424329

(10)关于纯虚函数,下列说法不正确的是( )。
A.纯虚函数是在声明虚函数时被初始化为0的函数
B.纯虚函数没有函数体
C.纯虚函数可以被调用
D.如果在一个类中声明了纯虚函数,该虚函数中在派生类中仍有可能为虚函数
答案问询微信:424329

(11)对于一个类的析构函数,其函数名与类名( )。
A.完全相同
B.完全不同
C.只相差一个字符
D.无关系
答案问询微信:424329

(12)派生类可以访问其基类的( )。
A.公用成员
B.保护成员
C.私有派生
D.公用和保护成员
答案问询微信:424329

(13)继承机制的作用是( )
A.信息隐藏
B.数据封装
C.定义新类
D.数据抽象
答案问询微信:424329

(14)C++语言建立类族是通过( )。
A.类的嵌套
B.类的继承
C.虚函数
D.抽象类
答案问询微信:424329

(15)假定AB为一个类,则执行 “AB x(a,5);”语句时将自动调用该类的 ( )。
A.带参构造函数
B.无参构造函数
C.复制构造函数
D.赋值重载函数
答案问询微信:424329

(16)假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是( )。
A.“class derived::student prived {// …} ;”
B.“class derived:student public {// …} ;”
C.“class derived:private student{// …} ;”
D.“class derived::student public stuednt {// …} ;”
答案问询微信:424329

(17)下列语句中错误的是()。
A.“int *p=new int (10);”
B.“int *p=new int [10];”
C.“int *p=new int ;”
D.“int *p=new int (10)(0);”
答案问询微信:424329

(18)下列不属于同一个函数原型的是( )
A.add(int,double);
B.int add(int,double);
C.int add(int x,double y);
D.int add(double y,int x);
答案问询微信:424329

(19)对于一个类的构造函数,其函数名与类名( )。
A.完全相同
B.基本相同
C.不相同
D.无关系
答案问询微信:424329

(20)由C++源程序文件编译而成的目标文件的缺省扩展名为()。
A.cpp
B.exe
C.obj
D.lik
答案问询微信:424329

(21)假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的( )。
A.有参构造函数
B.无参构造函数
C.复制构造函数
D.赋值构造函数
答案问询微信:424329

(22)cout是某个类的标准对象,该类是( )。
A.ostream
B.istream
C.stdout
D.stdin
答案问询微信:424329

(23)函数没有返回值的时候,应该选择( )的函数类型。
A.void
B.int
C.不确定
D.float
答案问询微信:424329

(24)关于new运算符的下列描述中,_____是错误的。
A.他可以用来动态创建对象和对象数组
B.使用它创建的对象或对象数组,可以使用运算符delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
答案问询微信:424329

(25)一个类的构造函数通常被定义为该类的(??)成员。
A.公用
B.保护
C.私有
D.友元
答案问询微信:424329

(26)以下叙述中正确的是( )
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内置函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
答案问询微信:424329

(27)在关键字public后面定义的成员为类的( )成员。
A.私有
B.公用
C.保护
D.任何
答案问询微信:424329

(28)面向对象程序设计将数据与_____放在一起,作为一个相互依存、不可分割的整体来处理。
A.对数据的操作
B.信息
C.数据隐藏
D.数据抽象
答案问询微信:424329

(29)假定一个二维数组的定义语句为“ int a [3][4]={{3,4),{2,8,6));”,则元素a[1][2] 的值为( )。
A.2
B.4
C.6
D.8
答案问询微信:424329

(30)指针可以用来表示数组元素,下列表示中_____是错误的。已知:int a[3][7];
A.*(a+1)[5]
B.*(*a+3)
C.*(*(a+1))
D.*(&a[0][0]+2)
答案问询微信:424329

(31)设px是指向一个类对象的指针变量,则执行 “delete px;”语句时,将自动调用该类的( )
A.无参构造函数
B.带参构造函数
C.析构函数
D.复制构造函数
答案问询微信:424329

(32)在关键字private后面定义的成员为类的( )成员。
A.私有
B.公用
C.保护
D.任何
答案问询微信:424329

(33)由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A.cpp
B.exe
C.obj
D.lik
答案问询微信:424329

(34)下列函数中,_____不能重载。
A.一般的成员函数
B.一般的非成员函数
C.析构函数
D.构造函数
答案问询微信:424329

(35)类模板的模板参数( )。
A.只可作为数据成员的类型
B.只可作为成员函数的返回类型
C.只可作为成员函数的参数类型
D.其他三者皆可
答案问询微信:424329

(36)假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为( )。
A.0
B.1
C.n
D.n-1
答案问询微信:424329

(37)关于运行时多态的下列描述中,()是错误的。
A.运行时多态是以虚函数为基础的;
B.运行时多态是在运行时确定所调用的函数代码的;
C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D.运行时多态是在编译时确定操作函数的。
答案问询微信:424329

(38)已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给A1的m赋值为5,( )是正确的。
A.A1.p = 5;
B.A1-p = 5;
C.A1.*p = 5;
D.*A1.p = 5;
答案问询微信:424329

(39)下列对派生类的描述中,( )是错误的。
A.一个派生类可以作为另一个类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类中保持不变
答案问询微信:424329

(40)使用如setfill()的操作符对数据进行格式输出时,应包含( )头文件。
A.iostream
B.fstream
C.iomanip
D.stdlib
答案问询微信:424329

(41)如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A.a.operator+(b)
B.b.operator+(a)
C.operator+(a,b)
D.operator(a+b)
答案问询微信:424329

(42)编写C++程序一般需经过的几个步骤依次是()。
A.编译、编辑、连接、调试
B.编辑、编译、连接、调试
C.编译、调试、编辑、连接
D.编辑、调试、编辑、连接
答案问询微信:424329

(43)控制输出格式的控制符中,( )是设置输出宽度的。
A.ws
B.ends
C.setfill
D.setw
答案问询微信:424329

(44)类的析构函数的作用是( )
A.一般成员函数
B.类的初始化
C.对象的初始化
D.删除对象创建的所有对象
答案问询微信:424329

(45)继承机制的作用是( )。
A.信息隐藏
B.数据封装
C.定义新类
D.数据抽象
答案问询微信:424329

(46)在类中声明转换函数时不能指定( )
A.参数
B.访问权限
C.操作
D.标识符
答案问询微信:424329

(47)关于构造函数,下列说法不正确的是( )。
A.构造函数名字和类名相同
B.构造函数在创建对象时自动执行
C.构造函数无任何函数返回类型
D.构造函数有且只有一个
答案问询微信:424329

(48)类的析构函数是一个对象被( )时自动调用的。
A.建立
B.撤消
C.赋值
D.引用
答案问询微信:424329

(49)用关键字( )标记的函数被称为虚函数。
A.virtual
B.private
C.public
D.protected
答案问询微信:424329

(50)下面概念不正确的选项是( )
A.构造函数的名字必须与类名相同
B.析构函数和构造函数都不能有返回参数
C.析构函数可以被重载
D.析构函数可以成为虚拟函数
答案问询微信:424329

(51)下列关于成员函数特征的描述中,( )是错误的。
A.成员函数一定是内置函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.成员函数可以是静态的
答案问询微信:424329

(52)关于运算符重载,下列说法正确的是( )。
A.重载时,运算符的优先级可以改变。
B.重载时,运算符的结合性可以改变。
C.重载时,运算符的功能可以改变。
D.重载时,运算符的操作数个数可以改变。
答案问询微信:424329

(53)定义析构函数时,应该注意( )。
A.其名与类名完全相同
B.返回类型是void类型
C.无形参,也不可重载
D.函数体中必须有delete语句
答案问询微信:424329

(54)以下叙述中正确的是( )
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内置函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
答案问询微信:424329

(55)如果类A被说明成类B的友元,则( )
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员
D.类B不一定是类A的友元
答案问询微信:424329

(56)用new运算符创建一个含有10个元素的一维整型数组的正确语句是( )。
A.int p = new int(10);
B.int p = new int[10];
C.int *p = new int [10];
D.int *p = new int(10);
答案问询微信:424329

(57)下列不是C++基本数据类型的是______。
A.int
B.string
C.char
D.void
答案问询微信:424329

(58)设置虚基类的目的是_____。
A.简化程序;
B.消除二义性;
C.提高运行效率;
D.减少目标代码;
答案问询微信:424329

(59)在C++中,抽象基类ios直接派生出( )。
A.istream, ostream, ifstream,ofstream
B.istream, ostream, istrstream,ostrstream
C.istream, ostream, iostream
D.istream, ostream, fstreambase,strstreambase
答案问询微信:424329

(60)关于基类和派生类的关系,()是错误的。
A.派生类对象属于基类;
B.可以用派生类指针指向派生类对象;
C.可以将基类对象赋值给派生类对象;
D.派生类对象指针可转换为基类指针。
答案问询微信:424329

(61)下述静态数据成员的特性中,______是错误的。
A.声明静态数据成员时前面要加修饰符static。
B.静态数据成员要在类体外进行初始化。
C.在程序中引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符。
D.静态数据成员是本类中个别对象所共享的。
答案问询微信:424329

(62)下述静态数据成员的特性中,______是错误的。
A.声明静态数据成员时前面要加修饰符static。
B.静态数据成员要在类体外进行初始化。
C.在程序中引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符。
D.静态数据成员是一个类的个别对象所共享的。
答案问询微信:424329

(63)一个类的构造函数为 “B(int ax, int bx): a(ax), b(bx) {}”,执行 “B x(1,2),y(3,4);x=y;”语句序列后x.a的值为______。
A.1
B.2
C.3
D.4
答案问询微信:424329

(64)若有如下函数模板定义,则正确使用该函数模板的语句是______。templateclass typevoid add(type a, type b, type c=a+b ; }
A.float x,y,z; add(x,y,z);
B.int x,y,z; add(x,y,;
C.float x,y; int z; add(x,y,z);
D.float x,y; int z; add(x,y,;
答案问询微信:424329

(65)关于基类和派生类的关系,______是错误的。
A.派生类对象属于基类;
B.可以用派生类指针指向派生类对象;
C.可以将基类对象赋值给派生类对象;
D.派生类对象指针可转换为基类指针。
答案问询微信:424329

(66)带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化_____。
A.与虚基类下面的派生类个数有关;
B.多次;
C.二次;
D.一次;
答案问询微信:424329

(67)函数重载与函数模板的说法错误的是_____。
A.当函数的函数体不同时,可以把函数设计为重载函数;
B.当函数体相同,仅仅操作的数据类型不同时,可把函数设计为模板;
C.重载函数和函数模板都是抽象的,都需实例化;
D.函数模板有待于实例化为模板函数,重载函数可以直接引用。
答案问询微信:424329

(68)友元的作用之一是______
A.提高程序的运行效率。
B.加强类的封装性。
C.实现数据的隐蔽性。
D.增加成员函数的种类。
答案问询微信:424329

(69)在 ()情况下适宜采用inline定义内置函数。
A.函数体含有循环语句
B.函数体含有递归语句
C.函数代码少、且频繁调用
D.函数代码多、不常调用
答案问询微信:424329

(70)下列函数中,()不能重载。
A.一般的成员函数
B.一般的非成员函数
C.析构函数
D.构造函数。
答案问询微信:424329

(71)下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
答案问询微信:424329

(72)下列说法不正确的是_______。
A.在类中,成员的默认访问特性是私有的。
B.类封装了数据和操作。
C.类实质上是一种数据类型。
D.在类的定义中,必须包含private、public、protected三种存取方式对应得部分。
答案问询微信:424329

(73)关于以下程序段中语法错误的正确描述是_______。#includeiostream.hvoid main(){ const char* p1= string1; char* const p2= string; char* p3= string3; p1[2]= a; //① p2[2]= b; //② p1=p3; //③ p2=p3; //④}
A.①②③④均错误
B.①和④错误
C.②和③错误
D.③和④错误
答案问询微信:424329

(74)派生类的成员函数可以直接访问基类的( )成员。
A.所有
B.公有和保护
C.保护和私有
D.私有
答案问询微信:424329

(75)若有语句 int *p = new int[5]; int * pi; 则以下语句中,执行时会造成delete[ ] p 语句的执行出错的是()。
A.(*p)++;
B.p++;
C.pi = p;
D.pi=p+3;
答案问询微信:424329

(76)下面有关重载函数的说法中正确的是( )。
A.重载函数必须具有不同的返回值类型
B.重载函数形参个数必须不同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同
答案问询微信:424329

(77)关于静态成员,正确的说法是_______。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
D.静态成员在任何对象创建之前就已经创建
答案问询微信:424329

(78)C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是( )。
A.面向过程
B.面向对象
C.安全性
D.复用性
答案问询微信:424329

(79)能够释放对象所占资源的是( )。
A.析构函数
B.数据成员
C.构造函数
D.静态成员函数
答案问询微信:424329

(80)假定AA为一个类,a为该类私有的数据成员,GetValue( )为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。
A.x.a
B.x.a()
C.xGetValue()
D.x.GetValue()
答案问询微信:424329

(81)下列程序段不会发生二义性的是_______。
A.int fun(double p){…;} float fun(float p){…;} int x; x=fun(0);
B.int fun(float p){…;}float fun(unsigned p){…;} int x; x=fun(0);
C.int fun(int i,int j=2){…;}float fun(int i){…;} coutfun(5);
D.int fun(int i=2,int j=2){…;} int fun(int *p){…;} coutfun(5);
答案问询微信:424329

(82)下列对派生类的描述中,______是错的。
A.一个派生类可以作为另一个派生类的基类;
B.派生类至少有一个基类;
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员;
D.派生类中继承的基类成员的访问权限到派生类保持不变;
答案问询微信:424329

(83)下列对继承关系的描述中,______是正确的。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;
B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;
C.在私有继承中,基类中只有公有成员对派生类是可见的;
D.在私有继承中,基类中的保护成员对派生类的对象是可见的;
答案问询微信:424329

(84)对于如下类的定义,下面语句组中出现语法错误的是________。class X{ int a;public: X(int x=0) {a=x;}};class Y:class X{ int b;public: Y(int x=0,int y=0):X(x) {b=x;}};
A.X *pa=new Y(1,2);
B.X a1=Y(1,3);
C.Y b1(2,3);X
D.X a4(10);Y b2=a4;
答案问询微信:424329

(85)关于静态成员,正确的说法是()。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
D.静态成员在任何对象创建之前就已经创建
答案问询微信:424329

(86)下列关于运算符重载的描述中,( )是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
答案问询微信:424329

(87)虚函数的定义是在基类中进行的,定义时需要冠以关键字( )。
A.static
B.friend
C.virtual
D.public
答案问询微信:424329

(88)类的析构函数是一个对象被( )时自动调用的。
A.建立
B.撤消
C.赋值
D.引用
答案问询微信:424329

(89)类模板的作用是可以将其实例化后得到一个具体的()。
A.类
B.对象
C.模板类
D.模板函数
答案问询微信:424329

(90)下面关于引用的说法错误的是( )。
A.引用是被引用对象的别名
B.对引用的修改就是对被引用对象的修改,反之亦然
C.引用不一定立即初始化
D.引用不能建立数组
答案问询微信:424329

(91)当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间时,它最多能够存储()个整数。
A.n
B.n+1
C.n-1
D.1
答案问询微信:424329

(92)C++的继承性允许派生类继承基类的( )。
A.部分特性,并允许增加新的特性或重定义基类的特性
B.部分特性,但不允许增加新的特性或重定义基类的特性
C.所有特性,并允许增加新的特性或重定义基类的特性
D.所有特性,但不允许增加新的特性或重定义基类的特性
答案问询微信:424329

(93)在类作用域中能够通过直接使用该类的( )成员名进行访问。
A.私有
B.公用
C.保护
D.任何
答案问询微信:424329

(94)C++类体系中,不能被派生继承的有( )。
A.转换函数
B.构造函数
C.虚函数
D.静态成员函数
答案问询微信:424329

(95)假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( )。
A.int rx=x;
B.int rx=
C.int *rx=
D.int
答案问询微信:424329

(96)下面的类中,( )不是由抽象基类ios直接派生出来的。
A.istream
B.ostream
C.iostream
D.fstreambase
答案问询微信:424329

(97)为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( )。
A.内置函数
B.重载函数
C.递归函数
D.函数模板
答案问询微信:424329

(98)一个函数功能不太复杂,但要求被频繁调用,选用( )
A.内置函数
B.重载函数
C.递归函数
D.嵌套函数
答案问询微信:424329

(99)在一个类的定义中,包含有( )成员的定义。
A.数据
B.函数
C.数据和函数
D.数据或函数
答案问询微信:424329

(100)下列说法错误的是()。
A.在类中不能对所定义的数据成员进行初始化;
B.类的公有成员函数是类与外界的接口
C.同一个类的两个对象占用相同的内存空间;
D.类实现数据隐藏。
答案问询微信:424329

(101)面向对象软件开发中使用的OOA表示( )。
A.面向对象分析
B.面向对象设计
C.面向对象语言
D.面向对象方法
答案问询微信:424329

(102)函数重载是指( )。
A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的函数名字不同,但形参的个数或类型相同
D.两个以上的函数取相同的函数名,并且函数的返回类型相同
答案问询微信:424329

(103)运行时的多态性使用什么获得?( )
A.重载函数
B.继承
C.虚函数
D.B和C
答案问询微信:424329

(104)下列()的调用方式是引用调用。
A.形参和实参都是变量
B.形参是指针,实参是地址值
C.形参是引用,实参是变量
D.形参是变量,实参是地址值
答案问询微信:424329

(105)调用一个成员函数时,使用动态关联的情况是( )。
A.通过对象调用一虚函数
B.通过指针或引用调用一虚函数
C.通过对象调用一静态函数
D.通过指针或引用调用一静态函数
答案问询微信:424329

(106)若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
A.in
B.inline
C.inLine
D.InLiner
答案问询微信:424329

(107)下面对友元的错误描述是()。
A.友元函数不可访问对象的private成员
B.一个类的成员函数可以是另一个类的友元
C.友元类和友元函数均用关键字friend声明
D.友元函数可以访问对象的protected成员
答案问询微信:424329

(108)实现运行时的多态性要使用( )。
A.重载函数
B.析构函数
C.构造函数
D.虚函数
答案问询微信:424329

(109)每个类( )构造函数。
A.只能有一个
B.可以有公用的
C.可以有多个
D.只可有缺省的
答案问询微信:424329

(110)在下列的各类函数中,( )不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
答案问询微信:424329

(111)下列对引用的陈述中错误的是()。
A.每一个引用都是其所引用对象的别名,因此必须初始化;
B.形式上针对引用的操作实际上作用于它所引用的对象;
C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行;
D.不需要单独为引用分配存储空间 。
答案问询微信:424329

(112)cin是某个类的标准对象,该类是( )。
A.ostream
B.istream
C.stdout
D.stdin
答案问询微信:424329

(113)类的析构函数可以带有( )个参数。
A.0
B.1
C.2
D.任意
答案问询微信:424329

(114)友元的作用之一是( )。
A.提高程序的运行效率。
B.加强类的封装性。
C.实现数据的隐蔽性。
D.增加成员函数的种类。
答案问询微信:424329

(115)以下关于函数模板的论述中,正确的是( )。
A.一旦定义了函数模板,就不能再定义同名的重载函数;
B.从同一个函数模板实例化后得到的多个模板函数属于函数重载;
C.函数模板中只有一种参数;
D.在定义函数模板时,template语句与函数模板定义语句之间可以有别的语句。
答案问询微信:424329

(116)下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是( )。
A.Valueoperator+(Value,Value);
B.Valueoperator+(Value,int);
C.Value
D.Value
答案问询微信:424329

(117)下面关于引用的说法错误的是( )。
A.引用是被引用对象的别名
B.对引用的修改就是对被引用对象的修改,反之亦然
C.引用不一定立即初始化
D.引用不能建立数组
答案问询微信:424329

(118)下列说法错误的是( )。
A.在类中,成员的默认访问特性是私有的;
B.类封装了数据和操作;
C.类实质上是一种数据类型;
D.在类的定义中,必须包含private、publi
E.protected三种存取方式对应得部分。
答案问询微信:424329

(119)下列说法错误的是( )。
A.在类中不能对所定义的数据成员进行初始化;
B.类的公有成员函数是类与外界的接口;
C.同一个类的两个对象占用相同的内存空间;
D.类实现数据隐藏。
答案问询微信:424329

(120)下列函数中,( )不能重载。
A.一般的成员函数;
B.一般的非成员函数;
C.析构函数;
D.构造函数。
答案问询微信:424329

(121)下列关于私有继承的说法中正确的是( )。
A.基类成员对派生类新定义的成员函数是不可见的;
B.基类成员对派生类新定义的成员函数是可见的;
C.只有基类成员中的公有成员对派生类新定义的成员函数是可见的;
D.基类成员中的保护成员对派生类新定义的成员函数是可见的。
答案问询微信:424329

(122)下列关于类的访问控制机制说法错误的是( )。
A.静态数据成员通常都定义为公有类型。
B.一个对象的私有成员对于同类的另一个对象是可见的。
C.友元机制破坏了类的封装性。
D.基类的保护成员对派生类新定义的成员函数是可见的。
答案问询微信:424329

(123)下列对派生类的描述中,( )是错的。
A.一个派生类可以作为另一个派生类的基类;
B.派生类至少有一个基类;
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员;
D.派生类中继承的基类成员的访问权限到派生类保持不变;
答案问询微信:424329

(124)下列对继承关系的描述中,( )是正确的。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;
B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;
C.在私有继承中,基类中只有公有成员对派生类是可见的;
D.在私有继承中,基类中的保护成员对派生类的对象是可见的;
答案问询微信:424329

(125)下列程序段不会发生二义性的是( )。
A.intfun(doublep){…;}
B.intfun(floatp){…;}
floatfun(floatp){…;}floatfun(unsignedp){…;}
intx;intx;
x=fun(0);x=fun(0);
C.intfun(inti,intj=2){…;}
D.intfun(inti=2,intj=2){…;}
floatfun(inti){…;}intfun(int*p){…;}
cout<<fun(5);cout<<fun(5);
答案问询微信:424329

(126)设置虚基类的目的是( )。
A.简化程序;
B.消除二义性;
C.提高运行效率;
D.减少目标代码;
答案问询微信:424329

(127)派生类的构造函数的成员初始化列表中,不能包含( )。
A.基类的构造函数;
B.派生类中子对象的初始化;
C.基类的子对象初始化;
D.派生类中一般数据成员的初始化;
答案问询微信:424329

(128)基类A中有成员函数fn1()、fn2(),在派生类B中重载了成员函数fn1()(即重新定义了fn1()),但没有重载其成员函数fn2()。如果在派生类B中调用基类A的成员函数fn1()(不是B中重载的数fn1())和fn2(),则正确的方式是( )。
A.A::fn1()和fn2();
B.fn1()和A::fn2();
C.A::fn1()和A::fn2();
D.fn1()和fn2();
答案问询微信:424329

(129)关于静态成员,正确的说法是( )。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
D.静态成员在任何对象创建之前就已经创建
答案问询微信:424329

(130)对于下面的两条语句,正确的描述是( )。
MyObject a(2), b(a), c; c = b = a;
A.拷贝构造函数执行了1次;
B.赋值运算符重载函数执行了3次;
C.拷贝构造函数函数执行了3次;
D.赋值运算符重载函数执行了1次;
答案问询微信:424329

(131)对于类模板,其类型形参可以作为( )。
A.成员函数的形参类型
B.成员函数的返回类型
C.数据成员的类型
D.其他三种均可
答案问询微信:424329

(132)下列说法错误的是( )。
A.在类中,成员的默认访问特性是私有的;
B.类封装了数据和操作;
C.类实质上是一种数据类型;
D.在类的定义中,必须包含private、public
E.protected三种存取方式对应得部分。
答案问询微信:424329

(133)下列程序段不会发生二义性的是( )。
A.int fun(double p){…;}
B.int fun(float p){…;}
float fun(float p){…;}float fun(unsigned p){…;}
int x;int x;
x=fun(0);x=fun(0);
C.int fun(int i,int j=2){…;}
D.int fun(int i=2,int j=2){…;}
float fun(int i){…;}int fun(int *p){…;}
cout
答案问询微信:424329

(134)对于如下类的定义,下面语句组中出现语法错误的是( )。
class X{
int a;
public:
X(int x=0) {a=x;}
};
class Y:class X{
int b;
public:
Y(int x=0,int y=0):X(x) {b=x;}
};
A.X *pa=new Y(1,2);
B.Xa1=Y(1,3);
C.Yb1(2,3);X
D.Xa4(10);Yb2=a4;
答案问询微信:424329

多选题:
(1)下列关于构造函数描述正确的是
A.构造函数的名字必须与类名相同
B.构造函数可以有任意类型的参数,但不能具有返回类型
C.定义对象时,编译系统会自动地调用构造函数
D.构造函数用于为对象分配空间,进行初始化。
答案问询微信:424329

(2)下列关于C++程序结构特点表述正确的是:
A.由包括main()在内的一组函数组成
B.C++函数由函数的说明部分和函数体两部分组成
C.C++中每个语句和数据定义必须以分号结束
D.C++源程序扩展名为.cpp
答案问询微信:424329

(3)对象具有下述哪些特性?
A.封装性
B.模块独立性
C.动态连接性
D.易维护性
答案问询微信:424329

判断题:
(1)使用字符串流时必须打开文件。( )
答案问询微信:424329

(2)内置函数的定义必须出现在第一次调用内置函数之前。( )
答案问询微信:424329

(3)字符串"sdfgh"的长度是5。( )
答案问询微信:424329

(4)成员函数中调用的虚函数可能实现动态联编。( )
答案问询微信:424329

(5)在设计类时一般把数据成员设置为私有的,把函数成员设置为公用的,从而实现了公用接口和私有实现的分离。( )
答案问询微信:424329

(6)C++允许用户可以定义新的运算符。例如,可将“**”定义为幂运算符。( )
答案问询微信:424329

(7)如果定义了一个类的对象数组,该数组有10个元素,则要调用10次构造函数来对每个元素初始化。( )。
答案问询微信:424329

(8)运算符重载以后,其优先级和结合性都不能改变。( )
答案问询微信:424329

(9)C++语言支持封装性和继承性,不支持多态性。( )。
答案问询微信:424329

(10)引用和指针都可作函数参数。( )
答案问询微信:424329

(11)若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( )
答案问询微信:424329

(12)Iostream是抽象基类ios的直接派生类.。()
答案问询微信:424329

(13)C++中设置虚基类的目的是实现运算时的多态性。()
答案问询微信:424329

(14)使用虚函数无法避免多重继承产生的二义性。( )
答案问询微信奥鹏期末考核:424329

(15)析构函数必须指定返回类型以及函数参数。( )
答案问询微信:424329

(16)派生类能够继承基类的析构函数。( )
答案问询微信:424329

(17)在用class定义一个类时,如果不加声明,数据成员和成员函数默认的访问权限是public。( )
答案问询微信:424329

(18)重载单目运算符作为类的成员函数,函数没有参数。( )
答案问询微信:424329

(19)将运算符“+”函数重载为类的成员函数,交换律不适用。( )
答案问询微信:424329

(20)C++中的所有运算符都允许重载。( )
答案问询微信:424329

(21)构造函数可以重载。( )
答案问询微信:424329

(22)引用可以不初始化。( )
答案问询微信:424329

(23)不可以定义抽象类的对象。( )
答案问询微信:424329

(24)C++中的字符串输入输出通常指定一个字符数组作为存储空间,它只能输入输出string类数据。( )
答案问询微信:424329

(25)友元函数说明在类体内,它是一种成员函数。( )
答案问询微信:424329

(26)纯虚函数是在基类中说明的虚函数,它在该基类中必须定义具体的操作内容。( )
答案问询微信:424329

(27)在调用构造函数时不必给出实参的构造函数称为默认构造函数。一个类只能有一个默认构造函数。( )
答案问询微信:424329

(28)在类的继承层次结构中,在不同的层次中不能出现名字相同、参数个数和类型都相同而功能不同的函数。( )
答案问询微信:424329

(29)当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的相同类型的同名函数也是虚函数。( )
答案问询微信:424329

(30)C++只能用于面向对象程序设计,不适用于面向过程程序设计。( )
答案问询微信:424329

计算题:
(1)如下两个函数是否等价? float fun();float fun(void);
答案问询微信:424329

(2)建立类box,box的构造函数被传递了三个double值,每一个double值表示盒子的一条边长。用box类计算立方体的体积,并存储在一个double变量中,在box类中包含一个成员函数vol(),用来显示每个box对象的体积。
答案问询微信:424329

简答题:
(1)什么是面向对象程序设计?它与面向过程程序设计的主要区别是什么?
答案问询微信:424329

其他题:
(1)填空
答案问询微信:424329

提供优质的教育资源

公众号: 超前自学网