




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年级专业: 教学班号: 学号: 姓名:装 订 线 ( 20 至 20 学年 第_学期 )课程名称: C+语言 考试时间: 110 分钟 课程代码: 试卷总分: 100 分考试形式: 闭卷 学生自带普通计算机器: 是 一、判断题(在下列各题中,请在正确的题后括号中打,错误的题后括号中打。本大题共15小题,每小题1分,总计15分)1C+源程序时,出现了警告错(Warning)也可以生成可执行文件。2定义变量时,变量的存储类说明符不得省略。3增1和减1运算符不仅可以作用在变量上,也可以作用在表达式上。4在定义一个数组时,对其部分元素进行了初始化,没有初始化的元素的值都是无意义的。5开关语句可实现多路分支。6指针的类型是它所指向的变量或对象的类型。7函数可以设置默认的参数值,默认参数值必须设置在函数定义时的形参上。8对象成员的表示方法与结构变量成员的表示方法相同。9构造函数和析构函数都可以重载。10静态数据成员必须在构造函数的成员初始化列表中进行初始化。11友元函数是说明在类体内的非成员函数,它可以访问类中的所有成员。12派生类只继承基类中的公有成员和保护成员,而不继承私有成员。13运算符重载是通过函数来实现的,定义运算符重载函数时,函数名中要使用关键字operator。14只要是成员函数就可以说明为虚函数,因为虚函数是一种成员函数。15含有纯虚函数的类称为抽象类。二、填空题(在_处填上最准确的答案)(本大题共15个空,每空1分,总计15分)1已知:double dd 3=1.2, 2.4, 3.6, 4.8, 5.2,6.4; 这里dd是一个二维数组的数组名,该数组共有 9 个元素,每个元素的类型是 double 。数组元素dd00 dd11的值是 5.3。2表达式语句是一个表达式后边加上 分号的。3使用关键字inline说明的函数称为 内联 函数,具有相同函数名但具有不同实现的函数称为 重载 函数。4使用class定义的表中,成员的默认访问权限是私有的;由struct定义的类中,成员的默认的访问权限是 公有的。5静态成员是属于 类的,它除了可以通过对象名来引用外,还可以使用类名限定。6.运行下面程序段后,k值为 36 。int k=1,n=263;do k*=n%10;n/=10; while(n);7.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为 public成员;若要访问其他成员变量,需要通过成员函数函数或 友元 函数。8在保护继承方式下,基类的public成员成为派生类的保护 成员。9C+语言多态性主要表现在动态联编、函数重载和运算符重载10虚函数是一种非静态成员函数。说明方法是在函数名前加关键字virtual三、选择题(在每个小题四个备选答案中选出一个正确答案)(本大题共20小题,每小题1分,总计20分)1.面向对象的(B )是一种信息隐蔽技术,目的在于将对象的使用者与设计者分开。不允许使用者直接存取对象的属性,只能通过有限的接口与对象发生联系。A多态性 B封装性 C继承性 D重用性2.下列标识符中,(B )是合法的。Agoto BStudent C 123 Dkld3.已知a=4,b=6,c=8,d=9,则“(a+,ba+&cd)?+d:ay); Bif(x=y)&(x!=0) x+=y;Cif(x!=y)cinx;else ciny;Dif(xy) x+;y+;5.以下能正确计算1*2*3*10的程序段是( C )。Ado i=1;s=1; Bdo i=1;s=0;s=s*i; i+; s=s*i;i+; while(i=10); while(i=10);C i=1;s=1; Di=1;s=0; do s=s*i; dos=s*i;i+; i+;while(i=10); while(i=10);6.下列数组的定义中,(C )是错误的。Achar ca1=c,m,n; B.char ca2=”name”;C. char ca34=”your”; D.int array=1,2,3,4;7.如果一个函数无返回值,定义时它的函数类型应是(C )。A任意 Bint Cvoid D无8已知:int fun (int a),m=10;下列调用fum()函数的语句中,正确的是(C )。Afun(m);Bfun (m*2); Cfun (m);Dfun (m+);9.在C+语言中,关于参数默认值的描述正确的是( B )。A只能在函数定义时设置参数默认值 B设置参数默认值时,应当从右向左设置C设置参数默认值时,应当全部设置D设置参数默认值后,调用函数不能再对参数赋值10.如果x是整型变量,则合法的形式是( D )。A(x+5)B*xC&*xD*&x11 拷贝构造函数具有的下列特点中,(D )是错误的。A如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的B拷贝构造函数只有一个参数,并且是该类对象的引用C拷贝构造函数是一种成员函数D拷贝构造函数的名字不能用类名12关于静态成员的描述中,(B )是错误的。A静态成员可分为静态数据成员和静态成员函数B静态数据成员定义后必须在类体内进行初始化C静态数据成员初始化不使用其构造函数D静态成员函数中不能直接引用非静态成员13关于友元的描述中,(A )是错误的。A友元函数是成员函数,它被说明在类体内B友元函数可直接访问类中的私有成员C友元函数破坏封装性,使用时尽量少用D友元类中的所有成员函数都是友元函数14 以下有关类与结构体的叙述不正确的是(C )A. 结构体中只包含数据;类中封装了数据和操作 B. 结构体的成员对外界通常是开放的;类的成员可以被隐藏C. 用struct不能声明一个类型名;而class可以声明一个类名D. 结构体成员默认为public;类成员默认为private15.派生类的对象对它的(A)是可以访问的。A公有继承的基类的公有成员 B. 公有继承的基类的保护成员C. 公有继承的基类的私有成员 D. 保护继承的基类的公有成员16.下列对基类和派生类关系的描述中,错误的是(B )。A.派生类是基类的具体化 B.派生类是基类的子集C.派生类是基类定义的延续 D.派生类是基类的组合17.下列虚基类的声明中,正确的是(D )。A.class virtual B:public A B.virtual class B:public AC.class B:public A virtual D.class B: virtual public A 18.要实现动态联编,必须通过( A)调用虚函数。A对象指针 B成员名限定 C对象名 D派生类名19下列关于抽象类的描述中,错误的是( D)。A抽象类中至少应该有一个纯虚函数 B抽象类可以定义对象指针和对象引用C抽象类通常用作类族中最顶层的类 D抽象类的派生类必定是具体类20.下列描述中,(D )是抽象类的特征。A可以说明虚函数 B可以进行构造函数重载 C可以定义友元函数 D不能说明其对象四、写出程序的运行结果(本大题共5小题,共计30分)1.程序一(本题4分)#includeclass Datepublic:void Setvalue(int m,int d,int y)month=m;date=d;year=y;void Display()coutmonth-date-yearendl;private:int month;int date;int year;void main()Date today;coutToday is:endl;today.Setvalue(18,12,2005); today.Display(); 2.程序二(本题6分)#include #include class Complex public: Complex(double r,double i); Complex(); double abscomplex();private: double real; double imag;Complex:Complex(double r,double i) coutExecuting constructor.endl;real=r; imag=i; coutreal=real,imag=imagendl;Complex:Complex() coutExecuting destructor.; coutreal=real,imag=imag endl;double Complex:abscomplex() double t; t=real*real+imag*imag; return sqrt(t);int main() Complex A(3,4); Complex B(6,8); cout|A|=A.abscomplex()endl; cout|B|=B.abscomplex()endl; return 0; 3.程序三(本题6分)#includeclass Point public:Point()x=0;y=0;cout Call Default Constructor.endl; coutx,yendl; Point(int x1,int y1) x=x1;y=y1;cout Call Constructor.endl;coutx,yendl; Point() cout Call Destructor.endl; int Getx() return x; int Gety() return y; private: int x,y;void main() coutObject One:endl; Point *Ptr1=new Point; delete Ptr1; coutObject Two:endl; Ptr1=new Point(1,2); delete Ptr1;4.程序四(本题8分)#include class BaseA1 public:BaseA1(int i) coutConstructing BaseA1 endl;x1=i;void print() coutx1=x1endl;protected:int x1;class BaseA2 public:BaseA2(int j)coutConstructing BaseA2 endl;x2=j;void print() coutx2=x2endl;protected:int x2;class BaseA3 public:BaseA3()coutConstructing BaseA3endl; void print() coutCostructing BaseA3 No Value!endl;class MDerivedB: public BaseA2, public BaseA1, public BaseA3public:MDerivedB(int a, int b, int c, int d):BaseA1(a),A2(d),A1(c),BaseA2(b) void print()BaseA1:print();BaseA2:print();BaseA3:print(); private:BaseA1 A1;BaseA2 A2;BaseA3 A3;void main()MDerivedB obj(1,2,3,4);obj.print();5.程序五(本题6分)#include const double PI=3.14159;class Shapes protected: int sidevalue1,sidevalue2,high;public:void setvalue(int x,int y=0,int h=0)sidevalue1=x;sidevalue2=y;high=h; virtual void CalculateArea()=0; ;class Square:public Shapespublic: virtual void CalculateArea() coutarea of square:sidevalue1*sidevalue1endl; ;class Rectangle:public Shapespublic: virtual void CalculateArea() coutarea of rectangle:sidevalue1*sidevalue2endl; ;class Circle:public Shapespublic: virtual void CalculateArea() coutarea of circle:PI*sidevalue1*sidevalue1endl; ;class LadderShape:public Shapespublic: virtual void CalculateArea() coutarea of laddershaper:(sidevalue1+sidevalue2)*high/2.0setvalue(10); pointer0-CalculateArea(); pointer1=&r1; pointer1-setvalue(10,5); pointer1-CalculateArea(); pointer2=&c1; pointer2-setvalue(10); pointer2-CalculateArea(); pointer3=&l1;pointer3-setvalue(10,12,8);pointer3-CalculateArea(); 五、程序设计题(本大题共2小题,总计20分)1、定义一个Score类,Score中有CourseScore私有成员用于表示学生成绩,有SetScore成员函数用于设定学生成绩,有PrintScore成员函数用于在控制台上输出成绩。在主函数中定义两个Score类的对象stu1、stu2,其成绩分别为85和98,并输出这两个学生的成绩。(8分)2、定义一个点类Point,其私有数据包含点的平面坐标x、y,利用有参构造函数实现对象坐标的确定。编写一友元函数Distance计算任意两点的距离。在主函数中定义两个点P1、P2,坐标分别为(0,0)和(10,20),计算并输出这两个点的距离(12分)#includeclass Score private: double CourseScore; public: voi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 材料合同附带安全协议
- 本合同协议为准
- 汽车销售协议是合同
- 孩子向父母借款买房合同范本
- 2024-2024年高考生物-基础冲刺-细胞增殖复习教案
- 中国散装码垛机市场现状研究分析与发展前景预测报告
- 企业管理咨询合同
- 线路维护合同协议书范本
- 建设工程监理合同
- 正式员工入职合同范本
- 零星工程施工组织设计方案
- 煤炭工业露天矿设计规范(WORD格式)
- 人教版七年级下册第五章53《平行线的性质》说课稿
- 8251芯片(课堂PPT)
- 江苏省电力公司电网生产业务外包管理办法(试行)
- DriveMonitor使用简介
- 湿法炼锌电解车间设计论文
- 苏州市优质结构评选办法
- 森林培育学复习提纲
- 电除尘拆除施工方案
- (完整版)表2.0.2逆变器本体安装.doc
评论
0/150
提交评论