C++练习试卷2及参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++练习试卷2及参考答案
一、填空题(每小题2分,共16分)
1.对象中封装了描述该对象的①和②,每个对象就是一个微小的
程序。
2.类是抽象的,①占用内存,而对象是具体的,②占用内存。
3.封装可以使得程序中各部分之间的相互影响变①,并且提高程序的安全性。
4.继承的方式有三种:①继承、②继承、③继承。
5.虚拟函数在①时表现出多态功能;而重载函数则在②时表现出多态性。
6.定义抽象类就是在类定义中至少声明一个①函数。
7.所谓模板是一种使用类型参数来产生一系列①或②的机制,是C++的一个重要特性。
8.如果异常错误类型为C++的类,并且该类有其基类,则应该将①类的错误处理程序放在前面, ②类的错误处理程序放在后面。
二、单项选择题(每小题2分,共20分)
1、下列函数中,( )不能重载.
A.成员函数
B.非成员函数
C.析构函数
D.构造函数
2、.继承具有( ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员.
A.规律性
B.传递性
C.重复性
D.多样性
3、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中, ( )是正确的.
A.void print() const
B.const viod print()
C.void const print()
D.void print(const)
4、.类模板的使用实际上是将类模板实例化成一个具体的( ).
A.类
B.对象
C.函数
D.模板类
5、( )是析构函数的特征.
A.一个类中只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
6、采用函数重载的目的在于( ).
A.实现共享
B.减少空间
C.提高速度
D.使用方便,提高可读性
7、下列do-while循环的循环次数为( ).
已知:
int i=6;
do{cout< i--; }while(i!=0); A.0 B.1 C.3 D.无限 8、C++语言中规定函数的返回值的类型是由( ). A.return语句中的表达式类型所决定 B.调用该函数时的主调用函数类型所决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型所决定 9、( ).是子类对父类的函数覆盖而不是重载,而覆盖是一种浮在表面的遮掩,而不是渗透性、摧毁性的重建。 A. 重载函数 B.友元函数 C.虚函数 D.模板函数 10、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )合适。 A. 内联函数; B. 重载函数; C. 递归调用; D. 嵌套调用。 三、简述题(9分) 简述对象化编程与过程化编程的优缺点。 四、阅读程序,写出运行结果(每小题7分,共35分) 1. ////////////////////////////// // cat.h // ////////////////////////////// #include class Cat { public: int GetAge(); void SetAge(int age); void Meow(); //喵喵叫protected: int itsAge; }; int Cat::GetAge() {return itsAge;} void Cat::SetAge(int age) {itsAge=age;} void Cat::Meow() {cout<<“Meow.\n”;} //////////////////////////////////////// // cat.cpp // //////////////////////////////////////// #include #include “cat.h” void main() {Cat frisky; frisky.SetAge(5); frisky.Meow(); cout<<“frisky is a cat who is” < <<“years old. \n”; frisky.Meow();} 2.=========================================================== #include class A { public: A(); A(int i,int j); ~A(){cout<<"Destructor.\n";} void print(); private: int a,b; }; A::A() { a=5;b=10; cout<<"Default constructor.\n"; } A::A(int i,int j) { a=i,b=j;cout<<"Constructor.\n";} void A::print()