




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 理解1.有以下类定义 class MyClass private: int id; char gender, char *phone; public: MyClass():id(0),gender(#),phone(NULL) MyClass(int no, char ge=#, char *ph= NULL) id=no;gende=ge;phone=ph; ; 下列类对象定义语句中错误的是 B 。 A MyClass myObj; B MyClass myObj(11,; C MyClass myObj(12, m); D MyClass myObj(12);2.Sample是一个类,执行下面语句Sample a2, *p = new Sample;后,调用Sample类的构造函数的次数是 3 。3.C+语言在求解问题方法上进行的最大改进是 面向对象 。 4.以下说法中正确的是_B_。 A C+程序总是从第一个定义的函数开始执行 B C+程序总是从main函数开始执行 C C+函数必须有返回值,否则不能使用函数D C+程序中有调用关系的所有函数必须放在同一个程序文件中5.new运算符6.有如下类定义:class XX int xdata;public: XX(int n=0) : xdata (n) ;class YY : public XX int ydata;public: YY(int m=0, int n=0) : XX(m), ydata(n) ;YY类的对象包含的数据成员的个数是 2 。7.析构函数(定义,特点)8.C+语言中,对函数参数默认值的约定。9.在一个被调用函数中,关于return语句使用的描述, D 是错误的。A 被调用函数中可以不用 return语句B 被调用函数中可以使用多个return语句C 被调用函数中,如果有返回值,就一定要有return语句D 被调用函数中,一个return语句可返回多个值给调用函数10.下面关于虚函数的描述,错误的是 C 。 A在成员函数声明的前面加上virtual修饰,就把该函数声明为虚函数 B基类中声明了虚函数,派生类中对应的同名函数也自动成为虚函数 C虚函数可以是另一个类的友元函数,也可以是静态成员函数D没有具体实现纯虚函数的类不能用来定义对象11.设有:int m=10;下列表示引用的方法中,正确的是(A) A int &x=m; B int &y=10; C int &z; D float &t=&m;12.可以用p.a的形式访问派生类对象P的基类成员a,其中a是 D 。 A私有继承的公有成员 B公有继承的私有成员 C公有继承的保护成员D公有继承的公有成员13.函数重载(定义,对函数名、参数的要求)14.纯虚函数的声明。15.在C+语言的面向对象设计框架中,对象 是程序的基本组成单元。16.类继承方式17.有如下程序段 int i =0, j=1; intr=i ; / r =j; / int*p=i ; / *p=r ; / 其中会产生编译错误的语句是 A 。 A B C D 二、填空(识记)1.函数声明(原型)语句。2.const对象,const成员函数。3.在C+中,函数的参数有两种传递方式,它们是?值传递和引用传递4.程序文件的编译错误分为哪两类。警告(warning)错误、致命(error) 错误 5.类,静态特征被描述为(数据成员)?动态特征被描述为?(成员函数)6.虚基类,虚基类的声明7.基类的公有成员在派生类中的访问权限由什么决定。继承方式8.友元函数。(定义)9.拷贝构造函数(概念)10.继承的方式有哪3种。公有继承(public)、私有继承(private)、保护继承(protected)11.类模板的使用实际上是将类模板实例化成一个具体的类12.变量的存储类型有哪四种。auto(自动)、extern(外部)、static(静态)、register(寄存器)13.如果不做特殊说明,类成员的默认访问权限是?结构成员的默认访问权限是?私有。公有。14.从实现的角度讲,C+支持的两种多态性分别是?编译时的多态性和运行时的多态性15.类中的非静态函数成员,都包含一个默认的指针this,它代表?正在被成员函数操作的对象16.单重继承,多重继承 17.假定用户没有给一个名为MyClass的类定义构造函数,则系统为其定义的默认构造函数形式为 MyClass() 。 18.在C+中“流”表示数据从一个对象到另一个对象的传递 。从流中取得数据称为 提取操作,用符号 表示;向流中添加数据称为 插入操作 ,用符号 表示。19.重载运算符的含义必须清楚,不能有 二义性 。20.静态成员(static)属于 类 ,而不属于 任何一个对象 ,它被同一个类的所有对象 共享。21.在类中定义和实现的函数称为?内联函数22.当基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义,在派生类中重新定义时,其函数原型,包括返回值类型、 函数名 、 参数个数 、参数类型以及参数的顺序都必须与基类中的原型完全相同。23.在C+中,函数名实际上是一个指针,它指向 函数的入口 。24.假定Xcs是一个类,该类中一个成员函数的原型为”Xcs *abc();”,则在类外定义时对应的函数首部为 Xcs Xcs:*abc()。25.在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。对基类和派生类中两个有相同名字的数据成员进行访问时,如果没有作用域限定符 ,对此数据成员的访问将出现歧义。三、阅读程序,在横线处填写正确的语句(理解+识记)1.类Goods定义如下, gd_name表示商品名称,weight表示商品重量,totalweight表示同类商品总质量, GetTotal_Weight()用来返回同类商品的总重量,GetN()用来返回商品名称。在横线处填写正确的语句,将程序补充完整。class Goods char gd_name20; int weight; static int totalweight; public:Goods (char* str,int w) strcpy(gd_name,str); weight=w; totalweight+=weight; Goods ()totalweight-=weight ; char* GetN()return gd_name; int GetW()return weight; static int GetTotal_Weight() return totalweight ; 2.以下程序定义了一个计数器类counter,对其重载运算符“+”,请在程序中的空格处填写正确的语句。#include using namespace std;class counter int n; public: counter() n=0; counter(int i)n=i; counter operator+(counter c) /运算符重载函数 counter t; t.n=n+c.n ;return t; void disp() coutn=nendl;void main() counter c1(5),c2(10),c3; c3=c1+c2; c1.disp(); c2.disp(); c3.disp(); 3.在下面程序的横线处填上适当的语句,使该程序执行结果为10。 #include using namespace std; class MyClass public: MyClass(int i)x=i; /为x置值 int GetNUm()return x; /取x值 private: int x; ; void main() MyClass my(10); cout my.GetNum() endl; 4.下列程序的输出结果为2,请将程序补充完整。#include using namespace std;class Base public: virtual void fun() cout1; ;class Derived: public Base public: void fun( ) coutfun( ); delete p; return 0; 5.以下是类A的定义,在构造函数中用aa初始化a所指向的动态对象,在析构函数中释放动态存储空间,在横线处填写正确的语句,完成类中成员函数的定义。class A int * a; public: A(int aa=0) a= new int(aa) ; A() delete a ;6.在下列程序中的空格处填写正确的语句。 #include using namespace std;class A public: char name80; public: A(char *n ) strcpy(name,n) ; ;class B : public A public:B( char* n)_:A(n)_;void PrintName( ) coutname: namedata=data ; private: int data;8.在下列程序中的空格处填写正确的语句。#include using namespace std; class Toy public: Toy(char* _n) strcpy (name,_n); count + ; Toy() count - ; char* GetName() return name; static int getCount() Return count ;private: char name10; static int count; int Toy:count=0 ;void mail() Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”); coutt1.getCount()endl;9.在下列程序中的横线处填写正确的语句。#include using namespace std; class Level1 public: int n1; Level1(int in_n1) n1=in_n1;coutThis is Level1,n1=n1endl; ;class Level21: virtual public Level1 public:int n21;Level21(int a): Level 1(a) n21=a;coutThis is Level21,n21=n21endl;class Level22: virtual public Level1 public:int n22;Level22(int a): Level 1(a) n22=a;coutThis is Level22,n22=n22endl;class Level3:public Level21,public Level22 public:int n3;Level3(int a):Level1(a),Level21(a),Level22(a)n3=a;coutThis is Level3,n3=n3endl;void main() Level3 obj(3); 10.下面是一个函数模板,用于计算两个向量的和。在横线处填写适当语句,完成函数模板定义。 Template T* f(T* a,T* b,int n) T* c= new T(n) ; for(int i=0;in;i+) c(i)= ai+bi ; return c;4、 简答题(识记)1. 类的成员的访问控制权限有哪几种?请说明公有成员和私有成员的区别。答:类的成员的访问控制权限有三种,分别是:private,public和protected。公有成员和私有成员的区别:公有成员允许被本类或其他类的成员函数(通过对象)访问或调用,是类的外部接口。私有成员只允许被本类的成员函数访问或调用。2. 何谓引用?引用主要有什么作用?符号“&”分别用在什么场合?答:引用就是为一个已声明的变量起一个别名。引用最大的用处是作为函数形参,通过引用,主调函数与被函数之间可进行值传递。“&”的用途:a、定义引用;b、取地址;c、逻辑与。3. 什么是缺省的构造函数?缺省的构造函数最多可以有多少个?答:如果在类定义中不显式地定义构造函数,C+编译器会自动产生一个缺省的构造函数,不过该函数不做具体的初始化工作。只要构造函数是无参的或者只要各参数均有缺省值的,C+编译器都认为是缺省的构造函数。缺省的构造函数只能有一个。4. 什么是友元函数?什么是友元类?简述友元函数的定义和使用方法。答:友元函数是C+提供的一种函数,它不是一个类的成员函数,但可以像成员函数一样访问该类的所有成员,包括私有成员和保护成员。友元的另一种类型是友元类,一个类可以声明另一个类为其友元函数,这个友元类的所有成员函数可以访问其为友元的类的所有成员。一个函数要成为一个类的成员函数,需要在类的定义中声明该函数,并在函数声明的前面加上关键字friend。至于友元函数本身的定义没有什么特殊要求,它可以是一般函数,也可以是另一个类的成员函数。5. 什么是对象?什么是类?简述对象与类之间的关系。答:对象是包含现实世界中事物特征的抽象实体,它反映了系统为之保存信息与之交互的方法。在程序设计领域,可以用如下公式表示对象:对象数据作用于这些数据上的操作。类是具有相同数据结构(属性)和相同操作功能(行为)的对象的集合,它规定了这些对象的公共属性和行为方法。两者关系:对象是类的一个实例,类则是对对象的抽象描述。它们的关系相当于程序设计语言中变量和变量类型的关系。6. 何谓构造函数?何谓析构函数?请说明它们分别有什么作用?答:构造函数是一种特殊的成员函数,它提供了对成员变量进行初始化的方法,使得在声明对象时能自动地初始化对象。析构函数也是一种成员函数,但它的作用于构造函数相反,用来在系统释放前做一些清理工作,如利用delete运算符释放临时分配的内存、清零某些内存单元等。两者作用:当创建一个对象时,系统先根据类定义的成员变量为对象分配内存空间,然后自动调用对象的构造函数对这段内存空间进行初始化处理,从而完成对象的初始化。当撤销一个对象时,系统自动调用对象的析构函数,然后释放对象所占内存空间。五、编程题(理解+识记)1.已知复数类Complex的声明如下: Class Complex Public: Complex(); /无参构造函数 Complex(double ); /转换构造函数 Complex(double, double); /有两个形参的构造函数 friend Complex operator+(Complex&, Complex&); /对“+”运算符进行重载 private: double real,imag;要求:(1)写出该类的所有构造函数的类外定义代码。 (2)写出对运算符“+”进行重载的运算符重载函数的定义。2.声明一个Shape抽象类,在此基础上派生出Rectangle和Circle类,二者都使用GetArea()函数计算对象的面积,GetPerim()函数计算对象的周长。3.定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,实现如下要求:构造函数重载;成员函数设置缺省参数;定义一个友元函数来打印日期;定义一个非静态成员函数设置日期;可使用不同的构造函数来创建不同的对象。4.编写一个程序:声明一个Cat类,拥有静态数据成员HowManyCats,用以记录Cat的个体数目;拥有静态成员函数GetHowMany(),用以存取HowManyCats。设计程序并测试这个类。(1)Complex:Complex()real=0;imag=0;Complex:Complex(double r)real=r;Complex:Complex(double r,double i)real=r;imag=i;Complex operator+(Complex &c1,Complex &c2) Complex c;c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag;return c;ostream& operator (ostream& output,Complex& c) output(c.real+c.imagi) (istream& input,Complex& c) coutc.realc.imag; return input;(2) #include#define PI 3.1415926;using namespace std;class Shapepublic: virtual double GetArea() = 0; virtual double GetPerim() = 0; ;class Rectangle : public Shape public: Rectangle(double aa, double bb) a=aa; b=bb; cout长a宽bendl; virtual double GetArea() return a * b; virtual double GetPerim() return 2*( a + b ); private: double a; double b;class Circle : public Shape public: Circle(d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理学患者情绪护理技巧应用试题答案及解析
- 农发行丹东市宽甸满族自治县2025秋招笔试英文行测高频题含答案
- 农发行喀什地区疏附县2025秋招笔试性格测试题专练及答案
- 2025年公共卫生学中传染病的流行病学分析多选题测试卷答案及解析
- 农发行大庆市肇源县2025秋招信息科技岗笔试题及答案
- 农发行呼伦贝尔市扎兰屯市2025秋招面试典型题目及参考答案
- 农发行宜昌市秭归县2025秋招笔试专业知识题专练及答案
- 发动机噪音控制方案总结
- 农作物新品种推广方案
- 岗位职业素养评估与提升效果
- 住房供给调控预案
- 培训行业转介绍
- 文科物理(兰州大学)学习通网课章节测试答案
- 人教版高二数学(上)选择性必修第一册1.2空间向量基本定理【教学设计】
- catia考试图纸题目及答案
- pos机风险管理办法
- 2025年行业机器人边缘计算技术应用与场景分析
- 2025年安徽省公务员录用考试《行测》真题及答案
- 2025年加油站行业需求分析及创新策略研究报告
- 2025中国工业传感器行业市场白皮书
- 手机桌面市场深度解析
评论
0/150
提交评论