还剩2页未读,继续阅读
文本内容:
《C++程序设计》课程考试试卷学年第学期各班级时量100分钟总分100分,考试形式闭卷
一、填空题(每题2分,共20分)
1.C++源程序的扩展名是—.
2.类中使用关键字static说明的成员称为—成员.
3.具有相同函数名但具有不同实现的函数称为函数.
4.构造函数是一个函数名称与—相同的特殊的成员函数.
5.静态成员是属于—的,被该类的所有对象共有,它除了可以通过对象名来引用外,还可以使用类名限定来引用.
6.类默认的拷贝构造函数的参数只有一个,该拷贝构造函数的参数是—.
7.定义一个类B的对象bl,并给它赋值,其实参值为5,该语句为.
8.类的析构函数有个参数.
9.在保护继承方式下,基类的public成员成为派生类的—成员.
10.运算符重载是通过函数来实现的,定义运算符重载函数要使用关键字.
二、判断题(每题2分,共20分)
1.C++是一门面向对象的程序设计语言,支持封装性和继承性,不支持多态性.
2.break语句和continue语句都可以出现在while循环体中,且二者作用和执行过程完全相同的.
3.构造函数和析构函数都是系统自动调用的成员函数.
4.静态成员函数中引用静态数据成员和非静态数据成员的方式是相同的.
5.基类可以派生出派生类,派生类还可以作基类派生出新的派生类.
6.类中成员的访问权限可以是私有,公有或保护的,且默认的访问权限是私有的.
7.静态成员函数既可使用对象引用,也可使用类名加作用域运算符的方法来引用.
8.使用new运算符创建的对象称为堆对象.
9.基类中成员在派生类中都是可以访问的.
10.虚函数就是纯虚函数,纯虚函数就是虚函数,二者是相同的.
三、选择题(每题3分,共15分)
1.已知int stu
[3]
[3]={{1,5,6},{3},{0,2});数组元素stu的值为().A.2B.1C.0D.
32.下列关于析构函数的描述中,错误的是().A.析构函数的函数体都为空B.析构函数是用来释放对象的C.析构函数是系统自动调用的D.析构函数是不能重载的
3.下列关键字中,不属于定义类时使用的关键字是().A.class B.private C.public D.default
4.下列关于友元函数的描述中,错误的是().A.友元函数不是成员函数B.友元函数的调用方法同一般函数C.友元函数只可访问类的私有成员D.友元函数可以是另一类中的成员函数
5.下列关键字中,用来说明虚函数的关键字是().A.inline B.virtual C.operator D.public
四、简答每题5分,共15分
1.C++语言程序中具有什么特点的函数适合被定义为内联函数,内联函数在实现过程中与一般函数有何不同?
2.C++语言程序中使用const定义的常量比使用#define定义的常量有何优点?
3.简单描述C++语言程序中的类的构造函数有什么特点?
五、程序阅读题每题6分,共30分
1、写过递归函数facint n的调用过程,从键盘输入5,分析程序并写出运行结果.ttinclude iostream.h intfac int n;void main{intn;cout〈〈〃请输入一个n〃;cinn;coutn z,!=,,fac nendl;int facintn{if n=l return1;else return n*facn-1;}
2、语句friend void Print Date;定义了Date类的友员,分析友员的特性,并写出程序的运行结果.ttinclude iostream.h class Date{public:Date inty,int m,int d{year=y;month二m;day=d;}friend void PrintDate;private:int year,month,day;;void PrintDated{coutd,year,/,d.month/d.dayendl;}void main0{Date dl2008,8,8,d22015,12,24;Print dl;Print d2;}
3、分析下列程序,填写下表中各类成员在不同类中的访问权限.ttinclude iostream.h classA{public:void fl;protected:int al;private:int a2;;class B:public A{public:void f2;protected:void f3;private:int b;;class C:protected B{public:void f4;protected:int cl;private:int c2;;各类成员的访问权限表表格中有X的位置表示不需耍填写,答卷中照样打X noal a2f2f3b f4cl c2类A(基类)X X X X XX类B(公有继承)XXX类C(保护继承)
4、分析下列程序的输出结果,熟悉多重继承派生类构造函数和析构函数的用法.#include iostream.h classA{public:Aint i{a=i;cout«H Constructorcalled.A\n M;}-A{cout«n Destructor called.A\n n;}void Print{cout«a«endl;}private:int a;;class B{public:Bint i{b=i;cout«n Constructorcalled.B\n n;}〜B{cout«n Destructorcalled.B\n n;}voidPrint{cout«b«endl;}private:int b;;class C{public:Cint i{c=i;cout«n Constructorcalled.C\n n;}-C{cout«n Destructorcalled.C\n n;}int Getc{return c;}private:int c;;classD:public A,public B{public:Dint i,int j,int k,int l:Bi,Aj,cl{d=k;cout«n Constructorcalled.D\n n;}〜D{cout«Destructorcalled.D\nn;}voidPrint{A::Print;B::Print;cout«d«Vc.Getc«endl;private:int d;C c;;void main{D d5,6,7,8;d.PrintQ;B b2;b=d;b.PrintQ;}
5、自定义数学中的复数类Comlex类复数类的数据成员有实部real和虚部image,使用友员函数实现运算符重载,完成复数的加法、减法运算.。