c++面向对象复习题答案版要点.pdf

上传人:赵** 文档编号:21130228 上传时间:2022-06-18 格式:PDF 页数:22 大小:813.25KB
返回 下载 相关 举报
c++面向对象复习题答案版要点.pdf_第1页
第1页 / 共22页
c++面向对象复习题答案版要点.pdf_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《c++面向对象复习题答案版要点.pdf》由会员分享,可在线阅读,更多相关《c++面向对象复习题答案版要点.pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 1 页 共 22 页一、一、 填空题填空题1.C+中有两种数据类型: ( ( charchar) )和 ( ( int intlonglong) )可以使用 signed 修饰符。在 C+中,用数组、指针、和(引用)作为函数参数,能够将参数值带回。2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为( 内联函数 ) ,方法是在函数类型前加上(inline)关键字。3.面向对象的程序设计有四大特征,它们是抽象、封装、( 继承 )、( 多态 )。4.拷贝构造函数是在用一个对象初始化另一个对象时被调用, 系统缺省的拷贝构造函数的工作方法是( 把对象的每个数据成员的值都复制到新建立的对象

2、中把对象的每个数据成员的值都复制到新建立的对象中)。5.用 new 申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的该类的)构造函数,否则应用程序会产生一个编译错误。6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象 ( ( 共共享享 ) )。7.在 C+中,定义重载函数时,应至少使重载函数的参数个数或参数类型( (不同不同) )。8.在 C+中,虽然友元提供了类之间数据进行访问的一种方式, 但它破坏了面向对象程序设计的(封装)特性。9.预编译指令由三种,它们是:文件包含、 ( ( 宏定义宏定义 ) )和 ( ( 条件编译条件编译 ) )。10.静态的成员

3、函数没有隐含的 ( ( thisthis) ),所以,它们只能直接访问类的静态的数据成员。11.在 C+中,函数的参数有两种传递方式,它们是值传递和( 地址地址 )。12.当非静态成员函数被调用时,该成员函数的( thisthis)指向调用它的对象。13.拷贝构造函数使用(引用引用)作为参数初始化创建中的对象。14.在公有继承的情况下,基类数据成员在派生类中的访问权限( 不变不变 )。15.在 C+中,构造派生类对象时,总是先从( 基类基类)的初始化开始的。16.当需要统计程序中某个类创建对象的个数时,需要给该类定义(静态数据静态数据)成员。17.在多个类之间有重复继承时,为避免被重复继承的基

4、类数据成员在内存中有多个拷贝,应将该基类定义为( 虚基类虚基类 ) 。18.在 C+类中,有一种不能定义对象的类,这样的类只能被继承,称之为( ( 抽象类抽象类) ),定义该类至少具有一个( ( 纯虚函数纯虚函数) )。19.在 C+中构造一个对象时,其数据成员在构造函数中初始化。对于内嵌的对象、( ( 常常量量) )、 ( ( 引用引用 ) )数据成员需要在构造函数的成员初始化列表中初始化。20.在类的定义中, 说明为 protected 的数据成员称为保护成员。 保护数据成员具有双重作用:对于其派生类而言, ( ( 可以访问可以访问 ) );而对于其外部的程序而言, ( ( 不可以访问不可

5、以访问) )。21.控制格式输出的操纵符中, (setprecisionsetprecision)是设置数据精度的, (hexhex)是设置十六进制的。22.如果 s 是 int 型变量,且 s=6,则下面 s%2+(s+1)%2 表达式的值为_0 0_。23已知字母 a 的 ASCII 码为十进制数 97,且设 ch 为字符型变量,则表达式 ch=a+4的值为_e_e_。24数组与函数参数联系密切, 当用数组元素作函数参数时,这是属于值传递;当数组名作为参数时,这是属于 地址地址传递,对形参的改变可影响到实参。第 2 页 共 22 页25利用“对象名.成员变量”形式访问的对象成员仅限于被声明

6、为 公有公有的成员;若要访问其他成员变量,需要通过 公有公有函数或友元函数函数。26一个_ _类类_ _和_对象对象_的关系,正如基本数据类型与该类型的变量一个。27类成员的默认访问方式是_私有的私有的_.28一个类有_多个多个_个构造函数,有_ _一个一个_析构函数。29类的_静态静态_成员函数不能对类中的非静态成员进行默认访问。30如果说明类 B 是类 A 的友元类,则类 B 的所有成员函数都是类A 的_友元函数 _。31利用成员函数对二元运算符重载, 其左操作数为对象对象参数参数。32类有两种用法:一种是类的实例化,即生成类的_模板类模板类_ ;另一种是通过_基类基类_派生出新的类。33

7、 运算函数中的关键字是_ _ operatoroperator _, 它和运算符一起组成该运算符函数的函数名。34如果一个类中有一个或多个纯虚函数,则这个类称为_ _抽象类抽象类_。35文件的打开是通过使用类_ _ _对象对象_的成员函数来实现的。36设所有变量均为整型,则表达式(e=2,f=5,e+,f+,e+f)的值为_9_9_。37已知 c 的 ASCII 码为十进制数 99,设 k 为字符型变量,则表达式 k=c+1 的值为_d d_。38 函数的形参在未被调用之前不被不被分配空间, 函数的形参的类型要和实参的相同。39类的成员分为数据成员和_ _ _成员函数成员函数_。40类完成了面

8、向对象程序设计的_抽象抽象_ _特性。41 构造函数是_对象对象_ _被创建时自动执行, 对象消失时自动执行的成员函数称为_析构析构_对象43在继承机制下,当对象消亡时,编译系统先执行 派生类派生类的析构函数,然后才执行派生类中子对象类的析构函数,最后执行 基类基类的析构函数。44类的_静态静态_ _数据成员是类所有对象共享的成员。45友元函数_不是不是_ _类的成员函数。 (是/不是)46如果类 A 继承了类 B,则类 A 称为_派生类派生类_,类 B 称为_基类基类_。47运算符重载后,原运算符的优先级和结合特性_ _不会不会_改变。 (会/不会)48_纯虚函数纯虚函数_ _是一个在基类中

9、说明的虚函数, 但未给出具体的实现, 要求在其派生类实现。49文件的关闭是通过通过使用类_的成员函数_来实现的。 (去掉)二、选择题二、选择题1面向对象的( B B)是一种信息隐蔽技术,目的在于将对象的使用者与设计者分开。不允许使用者直接存取对象的属性,只能通过有限的接口与对象发生联系。A多态性B封装性C继承性D重用性,右操作数为实际实际第 3 页 共 22 页2C+的合法注释是( B B) 。A/*This is a C program/*B/ This is a C programC “This is a C program”D/*This is a C program/3关于 C+和 C

10、 语言的描述中, ( C C)是错误的?AC 是 C+的一个子集B C 程序在 C+环境可以运行C C+程序在 C 环境可以运行D C+是面向对象的而 C 是面向过程的4运算符 +、=、=、% 中,优先级最低的运算符是( C C) 。A. +B.a+&cd)?+d:a=中,优先级最高的运算符是( C C) 。A+B=C*D=24下列不合法的变量名为(A A) 。AintBint1Cname_1Dname025已知 x=43,ch=A ,y=0;则表达式(x=y&chB&!y)的值是( C C) 。A0B语法错C1D “假”第 5 页 共 22 页A语句 for(i=0; ;i+)表示无限循环B

11、for(; ; )表示无限循环Cfor()也表示无限循环Dwhile(1)表示无限循环26以下不正确的是(c) 。?27在函数的返回值类型与返回值表达式的类型的描述中,错误的是( B,D) 。A 函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的B 函数返回值的类型就是返回值表达式的类型C 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型D 函数返回值类型决定了返回值表达式的类型28如果一个函数无返回值,定义时它的函数类型应是(C) 。A任意 Bint Cvoid D无29在 C+语言中,关于参数默认值的描述正确的是(A,B) 。A只能在函数定义时设置参数默认

12、值B设置参数默认值时,应当从右向左设置C设置参数默认值时,应当全部设置D设置参数默认值后,调用函数不能再对参数赋值30若有以下定义,则说法错误的是( D )。 int a=100,*p=&a ;A声明变量 p,其中*表示 p 是一个指针变量B变量 p 经初始化,获得变量 a 的地址C变量 p 只可以指向一个整形变量D变量 p 的值为 10031列关于结构体的说法错误的是(D ) 。A结构体是由用户自定义的一种数据类型B结构体中可设定若干个不同数据类型的成员C结构体中成员的数据类型可以是另一个已定义的结构体D在定义结构体时,可以为成员设置默认值32下列有关类的说法不正确的是(C) 。A 对象是类

13、的一个实例B 任何一个对象只能属于一个具体的类C 一个类只能有一个对象D 类与对象的关系和数据类型与变量的关系相似33 (C)的功能是对象进行初始化。A析构函数B. 数据成员C.构造函数D.静态成员函数34关于友元的描述中, ( A)是错误的。A 友元函数是成员函数,它被说明在类体内B友元函数可直接访问类中的私有成员C友元函数破坏封装性,使用时尽量少用D友元类中的所有成员函数都是友元函数第 6 页 共 22 页35为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(A,B,C) 。A.public B. protected C.private D. stati

14、c36派生类的对象对它的( A,B,D)是可以访问的。A公有继承的基类的公有成员 B. 公有继承的基类的保护成员C. 公有继承的基类的私有成员 D. 保护继承的基类的公有成员37多继承派生类构造函数构造对象时, (B)被最先调用。A派生类自己的构造函数 B虚基类的构造函数C非虚基类的构造函数 D派生类中子对象类的构造函数38C+类体系中,不能被派生类继承的有(C)。A.构造函数 B.虚函数 C.静态成员函数 D.赋值操作函数39编译时的多态性可以通过使用(A,D )获得。A虚函数和指针 B重载函数和析构函数C虚函数和对象 D虚函数和引用40下列描述中, ( A)是抽象类的特征。A可以说明虚函数

15、 B可以进行构造函数重载C可以定义友元函数 D不能说明其对象三、指出并改正下列程序段中的语法错误。三、指出并改正下列程序段中的语法错误。题目1.float x=3.26f;int &ref1=x;/ float2.int d1=3, d2=2;int * const dp=&d1;dp=&d2;*dp=5;3.类型不一致1.类型不一致答案2.常指针3. /Nums 为已定义的类Nums *fp;fp=new int4;4.void func(int first, int 2_secnd);5.void Pixel:operator=(Pixel &p1, Pixel &p2);4.标识符得字母

16、开头5.“=”运算符重载函数返回类型不对第 7 页 共 22 页6./Pixel 有两个整型成员 x 和 yPixel Pixel:operator+=(Pixle&p)constx+=p.x;y+=p.y;return *this;2 2、指出并改正下列程序段中的语法错误。、指出并改正下列程序段中的语法错误。题目1.int x=13;const int &ref=x;ref=10;2.double *fp;fp=new int(3);6.在这里 this 是指向常量的常指针答案1.常引用不能赋值了2.类型不一致3. void func( first, int secnd);4. /Pixel

17、有两个整型成员x 和 y,其拷/贝构造函数定义如下:void Pixel(const Pixle& p);3. first 不是类型说明4.不能有“void”5.5.不能定义友元函数,只能是成员函数。friendPixel&operator=(Pixel&p1,Pixel&p2);6. /Pixel 有两个整型成员 x 和 yPixel Pixel:operator+(int)Pixel temp; temp=*this;x+;y+;return *this;temp;四、程序填空四、程序填空1编写函数将字符串按逆序存放。#include#include#includevoid main()i

18、nt i,n;6.第 8 页 共 22 页char s100,temp;coutinput string:endl;(1)get(s);n=(2) strlen(s);for(i=0;in/2;i+)temp=si;si=sn-i-1; sn-i-1=temp; coutNow,string:endl;puts(s);2.下列程序定义了类 Pixel,请完成前置+和后置+的运算符函数的定义。class Pixel;Pixel Pixel:operator +()Pixel Pixel:operator +(int)void Pixel:display()3. 根据给定的程序执行结果,将下列程序

19、补充完整。#include class Basepublic:( 6 )Base() cout” Delete Derived”lend;cout(x,y)endl;( 4 )Pixeltemp=*this;x+;y+;return( 5 ) temp;x+;y+;return(3) *thisint x,y;Pixel(int xx=0,int yy=0) x=xx; y=yy; Pixel operator +();Pixel operator +(int);void display();public:第 9 页 共 22 页;class Derived:public Basepublic

20、:;void main()程序的执行结果如下:Delete DerivedDelete Base4定义一个字符串类 String,有两个私有数据成员:char* content 和 int len;要求1)在构造函数中提示用户输入字符串, ;2) 用户能提取和显示字符串; (分别由两个函数完成)3)实现对字符串中所有小写字母变成大写,并显示。注意内存的分配与释放。类定义的部分代码如下,请补充代码使类的定义完整。#include #include #include class String;String:String()char ch50;/?coutch;char* content;int l

21、en;String();Base *p1=( 8 )new Derived;delete p1;( 7 )Derived ()cout” Delete Base”lend;public:String()(1) delete content;void display();void upper_str();char* get_str() const(2) return content;第 10 页 共 22 页len=strlen(ch);content=(3)new char50;if(!content)cout Memory allocation eror!;exit(1);strcpy(co

22、ntent,ch);coutcontent have len characters.endl; void String:display()void String:upper_str()for (int i=0;ilen;i+)if(4)(a= contenti& contenti =z)contenti=(5)contenti+32;5. 下列程序定义了类Point,请完成前置-和后置-的运算符函数的定义。class Point;Point Point:operator -()Point Point:operator -(int)void Point:display()cout(x,y)end

23、l;(7) Point temp;temp=*this;x-; y=y-;(8)return temp;x-;y-;return(6)*this;float x,y;Point(float xx=0,float yy=0) x=xx; y=yy; Point operator -();Point operator -(int);void display();public:第 11 页 共 22 页6 6、程序填空,直接将答案写在空行上、程序填空,直接将答案写在空行上1._#incolude#incolude_/_1_class Aint a;public:A(int i)a=i;void pr

24、int()coutaendl;class B Aobj_a;intb;public:_B(intB(inti): obj_a (i)i): obj_a (i)_ _ b=i;void print();_void B:print()void B:print()_/3_obj_a.print(); coutbendl;int main( )B obj_b(3,4);obj_b.print(); return 0;2.#include #include 5class Complexdouble real,image;public:Complex(double r=0,double i=0) real

25、=r;image=i; ; 4 friend ostream & operator ( ostreamfriend ostream & operator ( ostream&, Complex &)&, Complex &) ; 5 ostream & operator ( ostream &ostream & operator ( ostream &output , ,Complex &Complex & obj) ) ; output obj.real obj.image; 6returnreturn output output ;int main()Complex c;coutc;ret

26、urn 0;/重载4五、写出程序的运行结果五、写出程序的运行结果1.1.#include int main(void)char str=configuration;char *p=str;coutpendl; for(int i=0;isizeof(str);i=i+2)coutstri;coutendl;/字符 c 的 ASCII 码是 99for(i=0;i4;i+)cout*p+i ;coutendl;return 0;2.第 1 1 题的运行结果如下:configurationconfigurationcniuaincniuaincdefcdef3.第 12 页 共 22 页# inc

27、ludeclass Nodepublic:int data;Node *next;Node(int d,Node * q=0) data=d;next=q; ;第第 2 2 题程序运行结果:题程序运行结果:int main()67-45-23-67-45-23-int n;Node * p;Node * q=0;while (cinn)p=new Node(n,q);q=p;for(p=q;p;p=p-next)coutdata;cout*n;return 0;/假定,输入如下 3 个数据:2345674.4.#include class Planeprotected:int x,y;publ

28、ic:Plane(int a,int b)x=a;y=b;virtual void print()cout(x,y)endl;virtual void increase(int d);class Solid:public Planeint z;public:Solid(int a,int b,int c):Plane(a,b)z=c;#include class ConstTestint m1,m2;public:ConstTest(int x,int y) m1=x;m2=y;void print()coutm1,m2endl;void print() const;void ConstTes

29、t:print() constcoutconst fun: m1+m2print();ptr=&d2;ptr-print();ptr-increase(4);ptr-print();d2.print ();(3, 6)(3, 6)第第 4 4 题题运行结果:运行结果:(2, 7, 9)(2, 7, 9)(6,11,13)(6,11,13)(6,11,13)(6,11,13)第 13 页 共 22 页void print()cout(x,y,z)endl;void increase(int d);void Plane:increase(int d)x+=d;y+=d;void Solid:inc

30、rease(int d)x+=d;y+=d;z+=d;/接右边的代码6.#include class Countstatic int count;public:Count()count+;static int Getc()return count;Count()count-;int Count:count=100;int main(void)Count c1,c2;coutCount:Getc()endl;Count c3;coutCount:Getc()endl;coutCount:Getc()endl;return 0;1.1.#include void main(void)char st

31、ring=fortunate ;char *p=string;coutstringendl;cout*p*(p+2)*(p+4)*(p+6)endl;for(int i=1; isizeof(string); i+=2)coutstringi;5.5.去掉上题(即第 4 小题)程序中的“ virtual”关键字,运行结果如何? (8分)(3,6)第第 5 5 题题运行结果运行结果:(2,7)(6,11)(6,11,9)第第 6 6 题的运行结果:题的运行结果:1021051022.2.#includevoid main() int a;couta;switch(a%2)case 0: cout

32、a 是偶数endl;default: couta 是奇数endl;a=a/4;coutaendl;如果输入数为 6,则输出结果是什么? 14.4.( 3 分)#includeclass Point第 14 页 共 22 页 int x,y; public: Point(int a=0,int b=0) x=a; y=b; void move(int xoffset,int yoffset)x+=xoffset; y+=yoffset; int getx() return x; int gety() return y;class Rectangle:public Point int length

33、,width; public: Rectangle(int x,int y,int l,int w):Point(x,y) length=l;width=w; int getlength()return length; int getwidth()return width;void main()Rectangle r(0,0,4,9);r.move(33,66);coutr.getx(),r.gety(),r.getlength(),r.getwidth()endl;5.5.#include class Base public:virtual void show()coutBase:show(

34、)endl;class Derived1: public Basepublic:void show()coutDerived1:show()endl;class Derived2: public Derived1public:void show()coutDerived2:show()endl;void main()Base b;Derived1 d1;Derived2 d2;Base *ptr3=&b,&d1,&d2;for (int i=0;ishow();Base:show()Base:show()Derived1:show()Derived1:show()Derived2:show()

35、Derived2:show()6.6. 去 掉 上 题 ( 即 第 5 小 题 ) 程 序 中 的“ virtual”关键字,运行结果如何?Base:show()Base:show()Base:show()Base:show()Base:show()Base:show()第 15 页 共 22 页2.2.#includevoid main()int a,b;int n=0;for(a=1,b=1;a=10) break;if(b%3=1) b+=3;n+;continue;coutaendl;coutbendl;coutnendl;4.4.#include class Aint a1,a2;p

36、ublic:A(int i,int j)a1=i;a2=j;void printA()couta1,a2endl;class BA a;int b1;public:B(int i,int j,int k);void printB();B:B(int i,int j,int k):a(k,j)b1=i;void B:printB()a.printA();coutb1endl;int main(void)B bbb(8,2,6);bbb.printB();return 0;3.3.#includeclass Pixel int x, y;public:static int count;Pixel(

37、)count+;Pixel()count-;int Pixel:count =0;int main()Pixel p6;Pixel p1=p2;coutPixel:count endl;Pixel p24;coutPixel:count endl;coutPixel:count endl;第 16 页 共 22 页5.5.#include class Pixelprotected:int x,y;public:Pixel(int a,int b)x=a;y=b;virtual void print()cout(x,y)endl;virtual void move(int d);class Pi

38、xel_3d:public Pixelint z;public:Pixel_3d(int a,int b,intc):Pixel(a,b)z=c;void print()coutx,y,zendl;void move(int d);1.1.#include void main(void)char string=successful ;char *p=string;coutstringendl;cout*p*(p+2)*(p+4)*(p+6)endl; for(int i=1; isizeof(string); i+=2) coutprint();ptr=&d2;ptr-print();ptr-

39、move(5);ptr=&d1;ptr-print();ptr=&d2;ptr-print();6.6. 去 掉 上 题 ( 即 第 5 小 题 ) 程 序 中 的“ virtual”关键字,运行结果如何?2.2.#include int main( )int x,y;coutxy;coutx=x,y=yendlcoutx-y=x-yn ;cout”x*y=”x*yendl;return 0;/假定,输入如下两个数据:9 3第 2 题运行结果:3.3.#includeclass Pixelint x, y;public:static int count;4.4.#include class A

40、int a;protected:int protect;第 17 页 共 22 页Pixel()count+;Pixel()count-;Pixel(const Pixel & obj)x=obj.x; y=obj.y; count+;int Pixel:count =0;int main()Pixel p5;coutPixel:count endl;Pixel p1=p1;Pixel p2=p2;coutPixel:count endl;Pixel p23;coutPixel:count endl;coutPixel:count endl;/第 3 题运行结果:public:A(int x)

41、a=x;protect=x+5;coutAendl;void show()coutaprotectendl;class Bint b;public:B(int x)b=x;coutBendl;int Getb()return b;class C:public Aint c;B obj_b;A Apublic:B BC(int x,int y,int z);C Cvoid show();1,61,6;2,52,5C:C(int x,int y,int z):A(x),obj_b(y)c=z; coutCendl;void C:show()A:show();coutobj_b.Getb(),cen

42、dl;void main(void)C c1(1,2,5);c1.show(); /第 4 题运行结果:六六. .判断下面程序的主函数中语句的对错。判断下面程序的主函数中语句的对错。第 18 页 共 22 页#include class Baseint a1;void seta1(int x)a1=x;public:int a2;void seta2(int x)a2=x;class DerivedB: protected Baseprotected:int b1, b2;void setb1(int x)b1=x;public:void setb2(int x)b2=x;class Deri

43、vedC: protected DerivedBint c1;void setc1(int x)c1=x;public:int c2;void setc2(int y)c2=y;void seta2(int y)Base:seta2(y);void setb2(int y)b2=y;int main() Base obja;DerivedB objb;DerivedC objc;obja.seta1(9); / objb.setb2 (4); / objc.setc2 (8); / obja.a2=objb.b2+objc.c2;/ objb.setb1(18); /objb.setb2(ob

44、jc.c2);/ objc.Base:seta2(48);/objc.seta2(34); /objc.DerivedB:setb2(22);/objc.setb2(22); / return 0; /答案如下:对错对错题答错对对案私有的错b2保护的错对私有的错对错对seta2保护的五、程序设计五、程序设计1. 修改下面给出的程序,但不允许对main( ) 函数在作任何修改,使程序能够在屏幕上输出:锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。原来的程序为:#include void main(void)cout汗滴禾下土。endl;第 19 页 共 22 页答:修改后的程序如下:#incl

45、ude classA public: A()cout” 锄禾日当午,”endl;A()cout” 谁知盘中餐,”endl;cout” 粒粒皆辛苦。”endl;A a;void main(void)cout汗滴禾下土。endl;2 定义一个抽象类 Shape,在此基础上派生出类Rectangel 和 Circle,二者都有计算对象面积的函数 GetGetArea() ,计算对象周长的函数GetPerim( ),在主函数中定义一个 Shape 指针数组分别指向 Rectangel 和 Circle 的对象,并通过 Shape 类的指针数组实现对这两个对象的成员函数的调用,输出圆和矩形的面积和周长。

46、#include classShape public: virtual void GetGetArea()=0;virtual void GetPerim( )=0;classRectangel:public Shape int x, y;public:Rectangel(int i, int j)x=i; y=j;void GetGetArea()cout RectangelArea:x*yendl;void GetPerim( ) cout RectangelPerim:2*(x+y)endl;classCircle : public Shapefloatr;public :Circle

47、(floati )r=i; void GetGetArea()cout CircleArea:3.1415926*r*rendl;void GetPerim( ) cout CirclePerim:2*3.1415926*r GetGetArea();p 0- GetPerim( );P1=& cir; p 1- GetGetArea();p1- GetPerim( );3. 定义一个字符串类 String,有两个私有数据成员:char* content 和 int len;要求:1)在构造函数中提示用户输入字符串;2) 用户能提取和显示字符串; (分别由两个函数完成)3)实现对字符串中所有小

48、写字母变成大写,并显示。4)在主函数中定义 String 类的对象,并对所有成员函数进行测试。注意内存的分配与释放。4请编写程序声明一个基类 Employee,从它派生出类 Technician,在主函数中将一个动态分配的 Technician的对象地址赋值给一个 Employee 的指针,然后通过指针释放对象空间。可以不声明数据成员,但要声明适当的析构函数释放内存。#include classEmployee ;class Technician:public Employee ;void main() Employee *p=new Technician;delete p;5. 一圆型游泳池

49、如图所示,现在需在其周围建一圆型过道,并在其四周围上栅栏。栅栏价格为 20 元/米,过道造价为 15 元/平方米。过道宽度为 4 米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。游泳池过道#include classShape第 21 页 共 22 页 public: virtual double GetGetArea()=0;virtual double GetPerim()=0;classCircle :public Shapedoubler1;public :Circle (doublei )r1=i; double GetGetArea()return 3.1415926

50、*r1*r1;double GetPerim( ) return 2*3.1415926*r1;classCircleLarge: publicCircle doubler2;public :CircleLarge(double i):Circle ( i )r2=i+4;double GetGetArea()return 3.1415926*r2*r2 ;double GetPerim( ) return 2*3.1415926*r2 ;classCost: public CircleLargepublic: Cost(double i): CircleLarge(i)voidDisplay

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁