一、选择题
1、下列对派生类的描述中,( )是错误的。
① 一个派生类可以作为另一个派生类的基类
② 派生类至少有一个基类
① 派生类的成员除了它自已的成员外,还包含了它的基类的成员
② 派生类中继承的基类成员的访问权限在派生类中保持不变
2、对基类和派生类的描述中,( )是错的。
① 派生类是基类的具体化 ② 派生类是基类的子集
③ 派生类是基类定义的延续 ④ 派生类是基类的组合
3、派生类的构造函数的成员初始化列表中,不能包含( )。
① 基类的构造函数 ② 派生类中子对象的初始化
③ 基类的子对象初始化 ④ 派生类中一般数据成员的初始化
4、设置虚基类的目的是( )。
① 简化程序 ② 消除二义性 ③ 提高运行效率 ④ 减少目标代码
5、关于子类型的描述中,( )是错的。
① 子类型就是指派生类是基类的子类型
② 一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型
③ 在公有继承下,派生类是基类的子类型
④ 子类型关系是不可逆的
6、已知一个类A,( )是指向类A成员函数的指针。假设类A有3个公有成员:
Void f1(int),void f2(int)和int a。
① A *p; ② int A::*pc=&A::a; ③ void A::*pa(); ④ A *pp;
7、已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用( )是
正确的
① p=f1; ② p=A::f1; ③ p=A::f1(); ④ p=f1();
8、已知:p是一个指向类A数据成员m的指针,a1是类A的一个对象。如果要给m赋值
为5,( )是正确的。
① a1.p=5; ② a1->p=5; ③ a1.*p=5; ④ *a1.p=5;
9、已知类A中一个成员函数说明如下:
void Set(A&a)
其中,A&a的含意是( 3 )。
① 指向类A的指针为a
② 将A的地址值赋给变量Set
③ a是类A的对象的引用,用来作函数Set()的形参
④ 变量A与a按位相与作为函数Set()的参数
10、有以下类的说明,请指出错误的地方
class CSample
{
private:
int a=2.5; (A)
CSample; (B)
public:
CSample(int val); (C)
~CSample; (D)
};
C++选择题 求高手解答
答案:2 悬赏:70 手机版
解决时间 2021-03-01 07:23
- 提问者网友:暗中人
- 2021-02-28 12:15
最佳答案
- 五星知识达人网友:鸠书
- 2021-02-28 13:06
1、③
2、①
3、③
4、 ② 消除二义性
5、①
6、③
7、4
8、3
9、3
10、B
2、①
3、③
4、 ② 消除二义性
5、①
6、③
7、4
8、3
9、3
10、B
全部回答
- 1楼网友:詩光轨車
- 2021-02-28 13:49
一.选择题:
1.说明函数int method a (floct)是友元函数应为(a):
a)friend int method a a (floctz)
b): friend int method a (floctz)
c): int friend a (floctz) friend
d): int method a friend (floctz)
2.对于下面的几个函数:
void f(int x) (…) 1/1
int f(int y) (…)1/2
int f(int i,int j(…))1/3
floct k(int x) (…)(c)是重载函数。
a):4个全部
b):1和4
c):2和3
d):3和4
3.c++语言是从早期的c语言逐渐发展演变来的,与c语言相比,它在求解问题方法上进行最大改进的是(b):
a):面向过程
b):面向对象
c):安全性
d):复用性
4.下列有关重载函数的说法中正确的是(c):
a):重载函数必须具有不同的返回值类型。
b):重载函数参考个数必须相同
c):重载函数必须有不同的行参列表
d):重载函数名可以不同
5.下列关于构造函数的描述中,错误的是(d):
a):构造函数可以设置默认的参数
b):构造函数在定义类对象的自动执行
c):构造函数可以是内联函数
d):构造函数不可以重载
6.下列描述中,表达错误的是(b):
a):公有继承的基类中的public成员在派生类中仍是public的
b):私有继承的基类中private成员在派生类中仍是private的
c): 公有继承的基类中的protected成员在派生类中仍是protected的
d): 私有继承的基类中public成员在派生类中是private的
7.应在下列程序画线处填入的正确语句是(c)
#include<iostream>
class base
{ public:
void fun(){cout<<”base.fun”<<endl;}
}:
class perived: public base
{void fun ()
{
//显示调用基类的函数fun()
cout<<”perived::fun”<<endl;
}
};
a)fun();
b):bas fun();
c):base::fun();
d):base→fun();
8.下面有关new和delete操作符的说法。哪个是正确的(d)
a):使用new操作符,可以动态分配全局堆中的内存资源
b):若p的类型已由a强制转换为void*,那么执行语句delete p*时,类a的析构函数不会被调用。
c):实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。
d):执行语句a*p=new
a[100]时,类a的构造函数只会被调用一次。
9.下列哪种用法不能体现类a和类b之间的组合关系(d):
a):类a中声明数据成员bb.
b): 类a中声明数据成员b*b;
c):没答案
d):类a中声明数据成员b fun(b&.obj);
10.类c是以多重继承的方式从类a和类b继承而来的,类a和类b无公共的基类,那么(b);
a):类c的继承方式只能采用public继承。 b):可改用单继承的方式实现类c的功能。
c):类a和类b至少有一个是抽象类。
d):类a类b只少有一个是虚基数。
12.类a有一个实例化的常量对象a,那么下面说法中不正确的是(a):
a):类a中的非静态数据成员一定都是常量成员。
b):通过a可以直接调用类a的常量成员函数。
c):a不能直接作为存值使用。
d):a可以是静态常量对象。
13.下列哪种函数可以是虚的(d)
a):自定义的构造函数。b):拷贝构造函数。 c):静态成员函数。 d):析构函数。
14.类b是通过public继承的方式从类a派生而来的。且类a和类b都有完整的实现代码,那么下列说法正确的是(a):
a):类b中具有public可访问性的成员函数个数。一定不少于类a中的public成员函数的个数。
b):一个类b的实例对象占有的内存空间一定不少于类a中的实例对象占有的空间。
c):只要类b中的构造函数都是public的,在main函数中。
d):类a和类b中是同名函数。
15.关于异常和c++提供的异常处理机制。不正确的说法是(a)。
a):若程序员预见到程序的异常,则一定可以通过修改程序代码来避免异常出现。
b):使用dyname cast操作符可能会发生异常。
c):异常可以用catch捕获处理
d):异常可以是对象,也课题是普通函数。
我有点,要的话,可以加我的qq313586148
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯