C++期中考试试卷.doc_第1页
C++期中考试试卷.doc_第2页
C++期中考试试卷.doc_第3页
C++期中考试试卷.doc_第4页
C++期中考试试卷.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计试卷一、选择题(每空2分,共20分)1. 下面选项中不属于面向对象程序设计特征的是(C ) 。A)继承性 B)多态性 C)相似性 D)封装性2. 可用作C+语言用户标识符的一组标识符是( B )。A) void define +WORD B) a3_b3 _123 YNC) for -abc CaseD) 2a DO sizeof3. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a21的值为(A)。A) 0 B) 4 C) 8 D) 64. 以下哪一关键字可用于重载函数的区分( C )A)externB)staticC)constD)virtual5. 下列有关继承和派生的叙述中,正确的是( C )A)派生类不能访问通过私有继承的基类的保护成员B)多继承的虚基类不能够实例化C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现6. 下列关于this指针的说法正确的是( B )A)this指针存在于每个函数之中B)在类的非静态函数中this指针指向调用该函数的对象C)this指针是指向虚函数表的指针D)this指针是指向类的函数成员的指针7. 在下列关于C+函数的叙述中,正确的是( C )A)每个函数至少要有一个参数B)每个函数都必须返回一个值C)函数在被调用之前必须先声明D)函数不能自己调用自己8. 下列运算符中,不能重载的是 ( C )A)&B)!=C).D)-9. 关于结构化程序设计方法说法错误的是( )。 A)在数据处理过程中,采用的是自顶向下、分而治之的方法。B)将整个程序按功能划分为几个可独立编程的子过程模块。C)以“对象”或“数据”为中心。D)数据和处理数据的过程代码是分离的、相互独立的实体。10. 关于静态成员的描述中,( )是错误的。A)静态成员可分为静态数据成员和静态成员函数。B)静态数据成员定义后必须在类体内进行初始化。C)静态数据成员初始化不使用其构造函数。D)静态数据成员函数中不能直接引用非静态成员。二、阅读程序写出程序运行结果(每题6分,共30分)1、#include class Sample int n; public: Sample(int i)n=i; friend int add(Sample &s1,Sample &s2); ; int add(Sample &s1,Sample &s2) return s1.n+s2.n; void main() Sample s1(10),s2(20); coutadd(s1,s2)endl; 2、#include class Apublic:A();A(int i,int j);A()coutaDonstructor.n;void print();private:int a,b;A:A()a=b=10;coutDefault constructor.n;A:A(int i,int j) a=i,b=j;coutConstructor.n;void A:print()couta=a,b=bendl;void main()A m,n(15,18);m.print();n.print();3、#include using namespace std;class Base public: Base(int i) cout i; Base () ;class Base1: virtual public Base public: Base1(int i, int j=0) : Base(j) cout i; Base1() ;class Base2: virtual public Base public: Base2(int i, int j=0) : Base(j) cout i; Base2() ;class Derived : public Base2, public Base1 public: Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a) cout b; private: Base2 mem2; Base1 mem1;void main() Derived objD (1, 2, 3, 4); 4、#include using namespace std;class Testpublic:Test() Test()cout#;int main()Test temp2, *pTemp2; return 0;5、#include using namespace std;class point public: static int number; public:point() number+;point() number-; int point:number=0; void main() point *ptr; point A,B;point *ptr_point=new point3; ptr=ptr_point; point C; delete ptr;coutpoint:number; 三、程序编写题(第一题为必做题,后面三题选做二题)1、首先编写一个选择排序函数,然后在主函数中调用排序函数对10个整数从小到大进行排序。提示:采用数组名作为函数参数。选择排序:每一趟从待排序的序列中选出一个最小的数据。(10分)代码:#include using namespace std;int *select(int a,int n)int i,j,k,temp;int *p;for(i=0;in;i+)k=i;for(j=i;jn;j+) if(ajak)k=j;if(i!=k) temp=ak; ak=ai; ai=temp;p=a;return p;void main()int data10,i,*q;cout请输入个整数:endl;for(i=0;idatai; q=select(data,10);for(i=0;i10;i+) cout*q ; if(i!=9) q=q+1;coutendl;2、建立一个CPoint类,该类有两个私有成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标,还有两个公有的成员函数:分别用于获取x和y 的坐标。由CPoint派生出CCircle类,派生类CCircle增加一个私有成员变量用于表示半径,并用派生类的构造函数设置半径,同时增加三个成员函数:一个用于获取半径,另两个分别用于获取圆外接正方形左上角的x坐标和y坐标。(20分)#includeusing namespace std;class Pointprivate:int x,y;public:Point(int a,int b);int getx();int gety();Point:Point(int a,int b)x=a;y=b;int Point:getx()return x;int Point:gety()return y;class Circle:public Pointprivate:int r;public:Circle(int a,int b,int c):Point(a,b)r=c;int getr();int Circle:getr()return r;void main()Point a(2,2);couta.getx()endl;Circle b(1,2,3);coutb.getx()endl;3、设计一个类Time(时间),该类用于表示时间值(时、分、秒)。要求能设置时间和输出时间。再设计一个日期类Date,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作。利用建立的日期类和时间类多重派生出日期时间类DateTime,并实现日期和时间的设置和输出。(20分)#includeusing namespace std;class Timeprivate:int hour,minute,second;public:Time(int h,int m,int s);Time();Time:Time(int h,int m,int s)hour=h;minute=m;second=s;Time:Time()couthour minute secondendl;class Dateprivate:int year,month,day;public:Date(int y,int mo,int d);Date();Date:Date(int y,int mo,int d)year=y;month=mo;day=d;Date:Date()coutyear month dayendl;class DateTime:public Time,public Datepublic:DateTime(int y,int mo,int d,int h,int m,int s):Date(y,mo,d),Time(h,m,s);void main()DateTime today(2006,6,29,7,38,30);4、建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。有一个成员函数:用于初始化学生姓名、学号、性别和年龄的构造函数。还有一个用于输出学生信息的友元函数。编写一个主函数,声明一个学生对象,然后调用友元函数在屏幕输出学生信息。(20分)#include#includeusing namespace std;class CStudentfriend void show(CStudent);private:char m_Name20;char m_ID20;char m_Sex10;int m_Age;public:CStudent:CStudent(char*name,char*ID,char*sex,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论