类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将( )
A.调用类A中的函数func()
B.调用类B中的函数func()
C.根据p所指的对象类型而确定调用类A
答案是:A
如果类A被声明成类B的友元,则( )
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得访问类B的成员
D.类B不一定是类A的友元
答案是:D
设有函数模板 template Q Sum(Qx,Qy){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是( )
A.Sum(10,2);
B.Sum(5.0,6.7);
C.Sum(15.2f,16.0f);
答案是:D
所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( )
A.类
B.对象
C.函数体
D.数据块
答案是:B
派生类的对象可以访问以下那种情况继承的基类成员( )
A.私有继承的私有成员
B.公有继承的私有成员
C.私有继承的保护成员
D.公有继承的公有成员
答案是:D
在下列成对的表达式中,运算结果类型相同的一对是( )
A.7/2和7.0/2.0
B.7/2.0和7/2
C.7.0/2和7/2
D.7.0/2.0和7.0/2
答案是:D
设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是( )
A.int m=min(min(15,26),min(15,47));
B.int m=min(15,26,47
答案是:B
如果表达式++i*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为( )
A.operator*(i.operator++(),k)
B.operator*(operator++(i),k)
C
答案是:B
类的构造函数被自动调用执行的情况是在定义该类的( )
A.成员函数时
B.数据成员时
C.对象时
D.友元函数时
答案是:C
面向对象的程序设计语言必须具备的关键要素是( )
A.抽象和封装
B.抽象和多态性
C.抽象、封装、继承和多态性
D.抽象、封装和继承性
答案是:C
下列说法中正确的是( )
A.类定义中只能说明函数成员的函数头,不能定义函数体
B.类中的函数成员可以在类体中定义,也可以在类体之外定义
C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中
D.在类体之外定义的函数成员不能
答案是:B
在下面格式化命令的解释中,错误的是 ( )
A.ios::skipws 跳过输入中的空白字符
B.ios::fill() 获得当前的填充字符
C. ios::hex 转换基数为八进制形式
D.ios::precision 返回当前的
答案是:C
以下关于抽象类的描述正确的是 ( )
A.不能说明指向抽象类对象的指针或引用
B.可以说明抽象类对象
C.抽象类的纯虚函数的实现可以由自身给出,也可以由派生类给出
D.抽象类的纯虚函数的实现由派生类给出
答案是:D
以下叙述正确的是( )
A.构造函数调用虚函数采用动态联编
B.构造函数可以说明为虚函数
C.当基类的析构函数是虚函数时,它的派生类的析构函数也是虚函数
D.析构函数调用虚函数采用动态联编
答案是:C
以下有关继承的叙述正确的是 ( )
A. 构造函数和析构函数都能被继承
B.派生类是基类的组合
C.派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员
D. 基类的公有成员一定能被派生类的对象访问
答案是:B
一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 ( )
A.内联函数
B.重载函数
C.递归函数
D. 嵌套函数
答案是:A
有如下程序段: int *p,a[6]={-1,0,1,2,3,4}; p=a+3; 执行该程序段后,*p的值为 ( )
A.4
B.2
C.1
D.NULL
答案是:B
友元关系不能( )
A.继承
B.是类与类的关系
C.是一个类的成员函数与另一个类的关系
D.提高程序的运行效率
答案是:A
下列有关模板和继承的叙述正确的是 ( )
A.模板和继承都可以派生出一个类系
B.从类系的成员看,模板类系的成员比继承类系的成员较为稳定
C.从动态性能看, 继承类系比模板类系具有更多的动态特性
D.相同类模板的不同实例一般没有联系
答案是:D
假设类X以类Y作为它的一个基类,并且X类的名字func()支配Y类的名字func(),obj为类X的对象,则obj.func()语句实现的功能为 ( )
A.先执行类X的func(),再执行访问类Y的func()
B.先执行类Y的fun
答案是:C
下面运算符中,不能被重载的运算符是( )
A.<=
B.-
C.?:
D.[]
答案是:C
类MyA的拷贝初始化构造函数是 ( )
A.MyA()
B.MyA(MyA*)
C.MyA(MyA&)
D.MyA(MyA)
答案是:C
所谓多态性是指 ( )
A.不同的对象调用不同名称的函数
B.不同的对象调用相同名称的函数
C.一个对象调用不同名称的函数
D. 一个对象调用不同名称的对象
答案是:B
对于类定义 class A{ public: virtual void func1( ){ } void func2( ){ } }; class B:public A{ public: void func1( ){cout<″class
答案是:C
在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( )
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
答案是:C
可以用p.a的形式访问派生类对象p的基类成员a,其中a是( )
A.私有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.公有继承的公有成员
答案是:D
下面说法正确的是( )
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字i
答案是:B
语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且( )
A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个
答案是:A
对于任意一个类,析构函数的个数最多为( )
A.0
B.1
C.2
D.3
答案是:B
在C++程序中,对象之间的相互通信通过( )
A.继承实现
B.调用成员函数实现
C.封装实现
D.函数重载实现
答案是:B
解决二义性问题的方法有( )
A.只能使用作用域分辨操作符
B.使用作用域分辨操作符或赋值兼容规则
C.使用作用域分辨操作符或虚基类
D.使用虚基类或赋值兼容规则
答案是:C
继承机制的作用是( )
A.信息隐藏
B. 数据封装
C.定义新类
D.数据抽象
答案是:C
如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )
A.a.operator++(1)
B.operator++(a)
C.operator++(a,1)
D.a.operator++
答案是:D
假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )
A. 0
B.1
C. n
D.n+1
答案是:C
假定AB为一个类,则执行 “AB a(2), b[3], *p[4];”语句时共调用该类构造函数的次数为( )
A.3
B. 4
C.5
D.9
答案是:B
函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )
A.1
B.2
C.4
D.5
答案是:B
对于友元描述正确的是( )
A.友元是本类的成员函数
B.友元不是本类的成员函数
C.友元不是函数
D.友元不能访问本类私有成员
答案是:B
一个类可包含析构函数的个数是( )
A.0个
B.1个
C.至少一个
D.0个或多个
答案是:B
设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是( )
A.int m = max(22,max(59,70));
B.int m = max(max(22,59),7
答案是:C
关于类的静态成员函数描述错误的是( )
A.在创建对象前不存在
B.不能说明为虚函数
C.不能直接访问非静态函数
D.不是对象的成员
答案是:A
一个类的静态数据成员所表示属性( )
A.是类或对象的属性
B.只是对象的属性
C.只是类的属性
D.是类和友元的属性
答案是:C
内联函数的特点是( )
A.减少代码量,加快访问速度
B.减少代码量,减缓访问速度
C.增加代码量,减缓访问速度
D.增加代码量,加快访问速度
答案是:A
一个C++源程序文件的扩展名为( )
A..h
B..c
C..cpp
D..cp
答案是:C
假定一个类的构造函数为 “A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行 “Ax(4,5);”语句后,x.a和x.b的值分别为( )
A.4和5
B.5和4
C.4和20
D.20和5
答案是:C
以下哪个基类中的成员函数表示纯虚函数? ( )
A.virtual void vf(int)
B.void vf(int) = 0
C.virtual void vf()=0
D.virtual void yf(int){}
答案是:C
编写C++程序一般需经过的几个步骤依次是( )
A.编译、编辑、连接、调试
B.编辑、编译、连接、调试
C.编译、调试、编辑、连接
D.编辑、调试、编译、连接
答案是:B
int Func(int,int);不可与下列哪个函数构成重载( )
A.int Func(int,int,int);
B.double Func(int,int);
C.double Func(double,double);
D.
答案是:B
下列哪个类型函数不适合声明为内联函数( )
A.函数体语句较多
B.函数体语句较少
C.函数执行时间较短
D.函数执行时间过长
答案是:A
在函数调用时,如某一默认参数要指明一个特定值,则有( )
A.其之前所有参数都必须赋值
B.其之后所有参数都必须赋值
C.其前、后所有参数都必须赋值
D.其前、后所有参数都不必赋值
答案是:A
使用值传递方式将实参传给形参,下列说法正确的是( )
A.形参是实参的备份
B.实参是形参的备份
C.形参和实参是同一对象
D.形参和实参无联系
答案是:A
设有函数T Sum(T x,T y){return x+y;},其中T为模板类型,则下列语句中对该函数错误的使用是( )
A.Sum(1,2);
B.Sum(3.0,2.2);
C.Sum(‘A’,‘C’);
D.Sum(
答案是:D
目前为:
4/4
页
首页 上页 下页 尾页