1、1面向对象程序设计C+期末考试试卷一、选择题(每小题 3 分,共 48 分。)01、下列关于 C+函数的叙述中,正确的是( )。A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明 D)函数不能自己调用自己02、下列关于类和对象的叙述中,错误的是( )。A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系03、在 C+中,用于实现运行时多态性的是( )。A)内联函数 B)重载函数 C)模板函数 D)虚函数04、下列关于运算符重载的叙述中,正确的是( )。A)通过运算符重载,可以定义新的运
2、算符 B)有的运算符只能作为成员函数重载C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参05、对于语句 coutfun();二、填空题(每空 2 分,共 20 分。)17、面向对象程序设计有四个主要特点,即抽象、封装、_和_。18、非成员函数应声明为类的_函数才能访问这个类的 private 成员。19、派生类中的成员不能直接访问基类中的_成员。20、在用 class 定义一个类时,数据成员和成员函数的默认访问权限是_。21、运算符重载函数可能是类的_函数,也可以是类的_函数,还可以是普通函数。22、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员
3、函数的名称是_,与之作用相同的控制符名称是_。23、含有纯虚函数的类称为_。3三、程序的填空、程序的执行(每题 4 分,共 20 分。)24、以下程序是定义一个计数器类 counter,对其重载运算符“+”,请填空。class counter private: int n;public:counter() n=0;counter(int i)n=i;_ /运算符重载函数 counter t; t.n=n+c.n; return t; void disp() coutfun( );delete p;return 0; 26、写出执行下面程序的输出结果。void fun(int x=y; y=t;
4、 int main( ) int a2 = 23, 42;fun(a1,a0);std:coutusing namespace std;class base public:virtual float area() const return 0; ;class triangle: public base protected:float bian,height;public:triangle(float a=0, float h=0) bian=a; height=h; virtual float area() const return bian*height/2; ;class square:
5、public base protected:float bian;public:square(float a=0) bian=a; virtual float area() const return bian*bian; ;class circle: public base protected:float radius;public:circle(float r=0) radius=r; virtual float area() const return 3.14*radius*radius; ;int main() triangle t(3,4); square s(5); circle c(2);base *p;p= coutarea()area()area()endl;return 0;