




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章 例题、习题和补充练习题一、 选择题1关于类的构造函数,下列说法正确的是 。A 必须为类定义一个构造函数 B 只能为类定义一个构造函数C 构造函数的类型为void D 构造函数在产生对象时由系统自动调用2关于类的缺省构造函数,下列说法正确的是 。 A 类的缺省构造函数没有参数 B 类的缺省构造函数是由系统自动产生的空的构造函数 C 每个类只能有一个缺省的构造函数 D 每个类均有且有一个缺省的构造函数3通常拷贝初始化构造函数的参数是 。A 某个对象 B 某个对象的成员名C 某个对象的引用名 D 指向某个对象的指针名4下列说法中, 是析构函数的特征A 析构函数没有返回值,所以其类型定义为voidB 析构函数名与类名相同C 析构函数必须有缺省的参数D 析构函数不能重载5关于类的构造函数,下列说法不正确的是 。A 每个类都有构造函数B 可以不为类定义构造函数C 如果类的成员使用了指针,为了初始化指针,一般要定义构造函数D 构造函数一定是公有的访问特性6下列哪种构造函数不能由系统自动产生 。A 类的缺省构造函数 B 申请动态内存的构造函数C 实现拷贝功能的构造函数 D 实现类型转换的构造函数7下列函数中不能重载的是 。A 成员函数 B 非成员函数 C 析构函数 D 构造函数8已知:类A中一个成员函数说明如下: void Set(A &a); 其中,A &a的含义是 。A 指向类A的指针为a。B 将a的地址值赋给变量Set.C a是类A的对象引用,用来作函数Set()的形参D 变量A与a按位相与作为函数Set()的参数。9下列定义中, 是定义指向数组的指针p。A int p5 B int (p)5 C (int *)p5 D int *p10关于new运算符的下列描述中, 是错误的。A 它可以用来动态创建对象和对象数组B 使用它创建的对象或对象数组,可以使用运算符delete删除C 使用它创建对象时要调用构造函数D 使用它创建对象数组时必须指定初值11关于delete运算符的下列描述中, 是错误的。A 它必须用于new返回的指针B 它也适用于空指针C 对一个指针可以使用多次该运算符D 指针名前用一对方括号符,不管所删除数组的维数12类的析构函数的作用是 。A 一般的成员函数 B 类的初始化 C 对象的初始化 D 删除对象13假定Myclass为一个类,则该类的拷贝初始化构造函数的声明语句为 。A Myclass&(Myclassx) B Myclass (Myclass x)C Myclass(Myclass&x) D Myclass (Myclass *x)14假定Myclass为一个类,则执行Myclass a,b(3),*p;语句时,自动调用该类构造函数 次。A 3 B 2 C 4 D 515有如下类的说明:class A int a;public: A(int x=10) a=x; ;下列说明类A的对象的方法中,不正确的是 。A A a1; B A a2(); C A a3(10); D a4=5;16仔细阅读下列程序#include class Aint a,b;public:A(int x,int y) a=x;b=y;void print()coutatbprint(); /D程序中会出现编译错误的是 。A A行 B C行 C B行 D D行17下列程序运行后输出为 。#include class Aint a,b,c;public:A(int x=5,int y=10,int z=15) a=x;b=y;c=z; void print() coutatbtcn;void main() A a1(1); a1.print();A 5 10 1 B 1 10 15C 10 15 1 D 1 5 1018设有下列程序:#include class Aint a,b,c;public:A() A(int x,int y=2,int z=3)a=x;b=y;c=z;void print()coutatbtcn;void main()A *p;Aa1,a2=1,a3=A(1,2),a4=*(p=newA(1,2,3);a1.print();a2.print();a3.print();a4.print();delete p;下列对程序输出的描述中正确的是 。A 除第一行外,其它三行输出相同 B 除第二行外,其它三行输出相同C 除第三行外,其它三行输出相同 D 除第四行外,其它三行输出相同19设有如下类的定义:class Exint *p;public:Ex(int x=0)p=new int(x);Ex()delete p;则下列对象的定义中,不正确的是 。A Ex ex1; B Ex ex2=50; C Ex ex3=Ex(50) D Ex ex4(50);Ex ex5=ex4;20对于下面定义的类Myclass,在函数main()中将对象成员n的值修改为50的语句应该是 。#include class Myclasspublic:Myclass(int x)n=x;void setNume(int n1)n=n1;void print()coutnprint(); - 8 -A Myclass(50) B setNume(50)C ptr-setNume(50) D ptr-n=50二、 填空题1.类中构造函数有 个,析构函数有 个。2在定义类的对象时,C+程序将自动调用该对象的 函数初始化对象自身。3在撤消类的对象时,C+程序将自动调用该对象的 函数。4 运算符对指定类型对象动态分配内存并返回该类型的 。5 运算符删除上题中的运算符所动态分配的内存空间。6假定用户没有给一个名为myclas的类定义构造函数,则系统为其定义的默认构造函数的形式为 。7假定用户没有给一个名为myclas的类定义析构函数,则系统为其定义的默认析构函数的形式为 。8当一个类的成员是某一个类的对象时,该对象就称为 。9 是指在程序运行过程中根据需要随时可以建立或删除的对象。10在C+语言中,每个类都有一个隐含的指针叫做 指针,该指针指向 。11当一个类对象的成员函数被调用时,该成员函数的 指向调用它的对象。12如果一个数组中的每个元素都是同一个类的对象,则该数组被称为 。13有如下定义语句:Myclass *p;,则执行p=new Myclass;语句时,将自动调用该类的 。执行delete p;语句时,将自动调用该类的 。14有如下定义语句:Myclass *p10;则当类对象数组指针p离开它的作用域时,系统自动调用该类析构函数 次。15有如下定义语句:Myclass p10;则系统自动调用该类的构造函数 次;当类对象数组p离开它的作用域时,系统自动调用该类析构函数 次。16定义在类中的类被称为 。17程序清单如下:#include class Apublic:int a;A(int x)a=x;void fun(int x)a+=x;void main()A a1(5);int A:*p;p=&A:a;void(A:*fp)(int);fp=A:fun;a1.*p=6;(a1.*fp)(6);couta1.*pn;(a1.*fp)(6);couta1.*pn;程序运行后输出为: 18程序清单如下:#include class Aint a,b;public:A(int x=0,int y=0)a=x;b=y;void copy(A *);void set(int,int);void print();void A:copy(A *t) /完成对象的拷贝功能 ; ;void A:set(int x,int y) a=x;b=y;void A:print() coutatbn;void fun(A t1,A &t2,A *t3)t1.set(100,200); ; /将t1拷贝给第二个参数 ; /将t1拷贝给第三个参数void main()A a1,a2,a3; ; /将a1,a2,a3依次作为参数调用fun函数a1.print();a2.print();a3.print();程序运行后输出: 19根据程序的输出结果,完善程序。#include class Dateint year,month,day;public:Date(int x=2002,int y=6,int z=1) year=x;month=y;day=z;void print()coutyear/month/dayendl;void main()Date d13= ;d10.print();d11.print();d12.print();程序运行后输出:2001/10/12002/10/12003/10/120程序清单如下:#include class Aint a;public:A(int x=0)a=x;void print()coutat;void main()A a124; ; /说明一个指向a1的指针p并对其进行初始化int i,j;for(i=0;i2;i+)for(j=0;j4;j+) ; /通过指针p将数组a1的各元素的成员数据赋值为i+jfor(i=0;i2;i+)for(j=0;j4;j+) ; /通过指针p将数组a1的各元素的成员数据输出coutn;coutn;程序运行后输出: 21程序清单如下:#include class Apublic:int a,b;A(int x=0,int y=0)a=x;b=y;class BA a1;int b;public:B(int x,int y,int z): /对照输出,完善构造函数b=y;void print() /输出所有成员函数 ;void main()B b1(1,2,3);b1.print();程序运行后输出结果为:1 3 222程序清单如下:#include class Aint a;public:A(int x=0)a=x;cout构造函数 An;A()cout析构函数 An;class Bint b;public:B(int x)b=x;cout构造函数 Bn;B()cout析构函数 Bn;class CA a1;B *p;B b1;public:C(int x,int y,int z):b1(x),a1(y) cout构造函数 Cn; p=new B(z); delete p;C()cout析构函数 Cn;void main()C c1(1,2,3);程序运行后输出: 三、 书后习题10-2#include class compfloat real,imag;public:comp(float x=0,float y=0) real=x;imag=y;void print() cout实部:real=realt虚部:imag=imagn; coutreal+imagin;void main()comp c1;c1.print();comp c2(3.5,6.7);c2.print();10-3#include #include #include #include class studentint no;char name20;int math;int english;int physics;int C;static int summath;static int sumeng;static int sumphy;static int sumC;static int num;public:student(int n,char na,int d1,int d2,int d3,int d4)no=n;strcpy(name,na);math=d1;english=d2;physics=d3;C=d4;summath+=d1;sumeng+=d2;sumphy+=d3;sumC+=d4;num+;student() float avg1() return summath*1.0/num;float avg2() return sumeng*1.0/num;float avg3() return sumphy*1.0/num;float avg4() return sumC*1.0/num;void print()coutnosetw(10)namesetw(10)mathsetw(10);coutenglishsetw(10)physicssetw(10)Cn;void show() cout总成绩setw(15);coutsummathsetw(10); coutsumengsetw(10); coutsumphysetw(10); coutsumCn;int student:summath=0;int student:sumeng=0;int student:sumphy=0;int student:sumC=0;int student:num=0;void main()student s;float (student:*fp)();student s1(1,Li,67,89,90,78);student s2(2,ma,56,78,76,89);student s3(3,xh,87,89,67,88);student s4(4,ch,84,95,69,98);coutnosetw(10)namesetw(10)mathsetw(10);coutenglishsetw(10)physicssetw(10)C+n;s1.print();s2.print();s3.print();s4.print();s.show();cout平均成绩t ;fp=student:avg1;cout(s1.*fp)()setw(10);fp=student:avg2;cout(s1.*fp)()setw(10);fp=student:avg3;cout(s1.*fp)()setw(10);fp=student:avg4;cout(s1.*fp)()n;10-4#include class Aint m;char *p1,*p2;public:A(int n)m=n; cout调用构造函数A(int)n;A(double x) if(x0)m=x-0.5; else m=x+0.5; cout调用构造函数A(double)n;void print() coutm=mn;A()coutcalled A()n;void main()A a(25),b(-200.75);b.print();A c(0);c=A(20);输出结果:调用构造函数A(int)调用构造函数A(double)m=-201调用构造函数A(int)调用构造函数A(int)called A()called A()called A()called A()10-6#include class Arreyint sizeI,pointI,sizeR,pointR,*pi;float *pr;public:Arrey(int si=100,int sr=200)pi=new intsi;pr=new floatsr;pointI=si;sizeI=0;pointR=sr;sizeR=0;int put(int n);float put(float x);int Geti(int index)if(index=0)&(index=0)&(index=sizeI)return prindex;else return 0;Arrey() delete pointIpi; delete pointRpr;void print();int Arrey:put(int n)if(sizeIpointI)pisizeI+=n;return sizeI;elseint *pti=new intpointI+1;for(int i=0;isizeI;i+)ptii=pii;delete pointIpi;pointI+;pi=pti;pisizeI+=n;return sizeI;float Arrey:put(float x)if(sizeRpointR)prsizeR+=x;return (float)sizeR;elsefloat *ptr=new floatpointR+1;for(int i=0;isizeR;i+)ptri=pri;delete pointRpr;pointR+;pr=ptr;prsizeR+=x;return (float)sizeR;void Arrey:print()cout输出整型数组:;for(int i=0;isizeI;i+)coutpii ;coutn;cout输出实型数组:;for(i=0;isizeR;i+)coutpri ;coutn;void main()Arrey a1(3,3);float x;for(int i=0;i5;i+)x=i+0.5;a1.put(i);a1.put(x);for(i=0;i5;i+)couta1.Geti(i)ta1.Getr(i)n;a1.print();10-7#include #include class Linearstrint size;int point;char *strp;public:Linearstr(int n=100)if(n=0)size=point=0;strp=0;elsesize=n;point=0;strp=new char *n; for(int i=0;in;i+)strpi=0;Linearstr()for(int i=0;ipoint;i+)if(strpi)delete strpi;if(strp)delete strp;void print(void);void addstr(char *);in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初级攀岩指导员考试要点及面试技巧
- 2025年验船师考试(C级船舶检验专业实务)全真冲刺试题及答案二
- 2025年陪诊师考试技术能力试题及答案
- 2025年健康教育与促进工作者考试试题及答案
- 北京市门头沟区2024-2025学年八年级上学期期末考试生物考试题目及答案
- 2025年电视节目拍摄用无人机驾驶员笔试预测试题及解析
- 广西银行面试题库及答案
- 2025年从入门到精通放射医学技术面试全攻略及高频问题解析
- 样品前处理相关培训课件
- 2025年旅游规划与管理专业题库解析
- 2025-2030超大型矿用卡车电动化转型技术路线及成本效益分析
- 2025至2030中国太阳能发电中的水泵行业发展趋势分析与未来投资战略咨询研究报告
- 中小学教师中高级职称答辩备考试题及答案(50题)
- 2025年药品监管与安全知识考试卷及答案
- 大讲堂+管理办法
- 高中班级常规管理课件
- 销售部区域划分管理办法
- 超声波龈下刮治术专题讲解
- 2025年电信传输工程师职称考试试题
- 小学一年级升二年级暑假数学作业-58套计算
- 2025年思想政治理论知识测试与能力考试试题及答案
评论
0/150
提交评论