C++面向对象程序设计试题B.doc
文本预览下载声明
面向对象程序设计试题
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共40分)
1C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )
???A.增加了一些新的运算符
???B.允许函数重载,并允许设置缺省参数
???C.规定函数说明符必须用原型
???D.引进了类和对象的概念
2.下列符号不能组成标识符的是( )
???A.连接符B.下划线
???C.大小写字母D.数字字符
3.类型修饰符unsigned不能修饰( )
???A.charB.int
???C.long intD.float
4.在int a=3, int *p=a;”中,*p的值是( )
???A.变量a的地址值B.无意义
???C.变量p的地址值D.3
5.下列关于指针的操作中,错误的是( )
???A.两个同类型的指针可以进行比较运算???B.可以用一个空指针赋给某个指针
???C.一个指针可以加上两个整数之差???D.两个同类型的指针可以相加
6.重载函数在调用时选择的依据中,错误的是( )
???A.函数的参数B.参数的类型
???C.函数的名字D.函数的类型
7.一个函数功能不太复杂,但要求被频繁调用,选用( )
?? A.内联函数B.重载函数
?? C.递归函数D.嵌套函数
8.下列不是描述类的成员函数的是( )
?? A.构造函数B.析构函数
?? C.友元函数D.拷贝构造函数
9.构造函数不具备的特征的是( )
???A.构造函数的函数名与类名相同???B.构造函数可以重载
???C.构造函数可以设置默认参数???D.构造函数必须指定类型说明
10.通常,拷贝构造函数的参数是( )
?? A.某个对象名B.某个对象的成员名
?? C.某个对象的引用名D.某个对象的指针名
11.继承机制的作用是( )
?? A.信息隐藏B.数据封装
?? C.定义新类D.数据抽象
12.类的析构函数的作用是( )
?? A.一般成员函数B.类的初始化
?? C.对象的初始化D.删除对象创建的所有对象
13.类的析构函数是在( )调用的。
?? A.类创建时B.创建对象时
?? C.删除对象时D.不自动调用
14.在( )情况下适宜采用inline定义内联函数。
???A.函数体含有循环语句???B.函数体含有递归语句
???C.函数代码少、频繁调用???D.函数代码多、不常调用
15.如果类A被说明成类B的友元,则( )
???A.类A的成员即类B的成员???B.类B的成员即类A的成员
???C.类A的成员函数不得访问类B的成员???D.类B不一定是类A的友元
16.在类中声明转换函数时不能指定( )
?? A.参数B.访问权限C.操作D.标识符
17.在公有继承的情况下,基类成员在派生类中的访问权限( )
?? A.受限制 B.保持不变 C.受保护 D.不受保护
18.C++类体系中,不能被派生类继承的有( )
?? A.转换函数B.构造函数
?? C.虚函数D.静态成员函数
19.假定AB为一个类,则执行AB x;”语句时将自动调用该类的( )
?? A.有参构造函数B.无参构造函数
?? C.拷贝构造函数D.赋值构造函数
20.C++语言建立类族是通过( )
?? A.类的嵌套 B.类的继承 C.虚函数 D.抽象类
二、填空题(每空2分,共20分)
1.对象的三大基本特性是多态性、_______、封装性。
2.C++语言的函数参数传递方式有传值和_______。
3.重载赋值操作符时,应声明为_______函数。
4.用_______声明的基类称为虚基类。
5.用_______声明函数称为虚函数。
6.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的_______。
7.静态成员是对象的成员,_______函数不是类的成员。
8.在函数体之前加_______关键字可以防止覆盖函数改变数据成员的值。
9.一个const对象只能访问_______成员函数。
10.使用友元函数是为了提高程序效率,且节约了_______开销。
三、完成程序题(每小题5分,共20分)
1.完成下面类中的成员函数的定义。
class TC {
private:
????? int num;
????? float x;
public:
????? TC(int, float f);
????? TC(TC);
};
TC::TC(int n, float f)
{
????? num = n;
????? _______;
}
TC::TC(TC t)
{?
????? _______;
????? x = t.f;
}
2.根据下面的主程序,完成类说明的最小形式(不要求实
显示全部