C++复习题2015_第1页
C++复习题2015_第2页
C++复习题2015_第3页
C++复习题2015_第4页
C++复习题2015_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、C+练习题一、选择题1. C+语言是从早期的 c语言逐渐开展演变而来的.与c语言相比,它在求解问题方法上进行的最大改良是B .A.面向过程 B .面向对象 C.平安性D.复用性2. C+对C语言作了很多改良,即从面向过程变成为面向对象的主要原因是 D .A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念3. 对C+语言和C语言的兼容性,描述正确的选项是 A .A, C+兼容C B, C+局部兼容 C C. C+不兼容 C D. C兼容C+4. 在C+中,头文件扩展名为 B .A. .cppB. .hC. .1ibD. .obj5.

2、C+源程序文件扩展名为A .A. .cppB. .hC. .1ibD. .obj6 .由C+源程序文件编译而成的目标代码文件的缺省扩展名为 C .A. .cpp B. .exe C. .obj D. .lik7 .布尔类型标识符是 D .A.void B.short C.long D.bool8 .以下不是C+语言的根本数据类型的是 D .A.字符类型B.整数类型C.逻辑类型D.枚举类型9 .用于标识十六进制前缀或后缀是D.A.后缀L B.后缀e C.前缀零 D.前缀0x10 .设x和y均为bool量,那么x&&y为真的条件是 A .A.它们均为真 B.其中一个为真 C.它们均

3、为假 D.其中一个为假11 .在以下成对的表达式中,运算结果类型相同的一对是 D .A.7/2 和 7.0/2.0B.7/2.0 和 7/2C.7.0/2和 7/2 D.7.0/2.0 和 7.0/212 .如果 a=1,b=2,c=3,d=4, 那么条件表达式 a<b?a:c<d?c:d 的值为 A .A. 1B. 2C. 3D. 413 .在预编译指令中,宏定义使用哪个指令 B .A . #include B . #define C . #if D . #else14 .包含自定义头文件file.h的预处理指令是D.A.#define<file.h> B.#incl

4、ude file.h C.#define file.h D.#include"file.h"15 .可替换 #define PI 3.1415926 的语句是 B .A.float PI 3.1415926 ; B.const float PI=3.1415926 ;C.const PI3.1415926 ; D.const 3.1415926 ;16 .在C+中使用流进行输入输出,其中专用于从键盘进行输入的流是B .A.cerrB.cinC.coutD.cfile17 .在C+中使用流进行输入输出,其中用于屏幕输出的对象是 C .A. cerr B. cin C. cou

5、t D. cfile18 .以下给字符数组进行的初始化中,正确的选项是A .A. char s1="abcd" B.char s23="xyz"C. char s3='a','x','y' D.char s423="xyz","mnp"19 .在 int b3=1,3,2,4,5,6,0 中,a22的值是C .A. 0 B. 5C.6D.220 . int a=3 ; int *p=&a ;中,*p 的值是 D .A.变量a的地址值B.无意义 C.变量p的地址

6、值D. 321 .对于int *pa5;的描述,正确的选项是 D.A. pa是一个指向数组的指针,所指向的数组是5个int型元素B. pa是一个指向某数组中第5个元素的指针,该元素是int型变量C. pa5表示某个数组中的第5个元素的值D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针22 .:int a,&ra=a;关于ra的描述中正确的选项是C .A. ra是int型变量a的地址值B.a是int型变量ra的地址值C. ra是int型变量a的引用 D. ra是int型变量a的指针23 .假定变量x定义为“int x=5;,要使rx成为x的引用别名,rx应定义为 D .

7、A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x;24 .设存在整型变量int x ,那么以下语句中与其它三项含义不同的是 A .A.int* p=&x ; B.int& p=x ; C.int & p=x ; D.int &p=x ;25 .设函数void swapint& , int&将交换两形参的值,如两整型变量 int a=10; int b=15 ;那么执行swapa, b后,a、b值分另U为C .A.10, 10B.10, 15C.15, 10D.15

8、, 1526 .设存在函数int minint , int返回两参数中较小值,假设求 15, 26, 47三者中最小值,以下表达式 中错误的选项是B .A.int m=min(min(15 , 26) , min(15 , 47); B.int m=min(15 , 26, 47);C.int m=min(15 , min(47 , 26);D.int m =min(min(47 , 26), 16);27 .设存在函数int max(int , int)返回两参数中较大值,假设求 22, 59, 70三者中最大值,以下表达 式不正确的选项是( C ).C. int m = max(22 ,

9、59, 70);A . int m = max(22 , max(59, 70); B. int m = max(max(22 , 59), 70);D. int m = max(59 , max(22 , 70);28.以下正确的函数原型语句是A. double fun(int x,int y)C. double fun(int,int);(C )oB. double fun(int x;int y)D. double fun(int x,y);29 .在函数声明中,下面哪项不是必要的 D .A.函数参数的类型和参数名B.函数名C.函数的类型D.函数体30 .使用值传递方式将实参传给形参,以

10、下说法正确的选项是 A .A.形参是实参的备份B.实参是形参的备份C.形参和实参是同一对象D.形参和实参无联系31 .在每个C+程序中都必须包含有这样一个函数,该函数的函数名为A A. main B. MAIN C. name D. function32 .包含哪种语句的函数不能声明为内联函数 A .A.循环 B.变量自增自减 C.if.else -D.变量声明33 .在C 情况下适宜采用inline定义内联函数.A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用量34 . 一个函数功能不太复杂,但要求被频繁调用,选用 A .A.内联函数B.重载函数C

11、.递归函数D.嵌套函数35 .在C+中,关于以下设置参数默认值的描述中,正确的选项是C .A.不允许设置参数的默认值B .设置参数默认值只能在定义函数时设置C.设置参数默认值时,应该是先设置右边的再设置左边的D.设置参数默认值时,应该全部参数都设置36 .函数默认参数在函数原型中说明,默认参数必须放在参数序列的(C ).A.前部 B.中部 C.后部 D.两端37 .以下哪种默认参数的声明是不正确的( C ).A. int max(int a,int b , int c, intd=0);B. int max(int a,int b , int c=0 ,int d=0);C. int max(

12、int a=0, int b , int c=0, intd=0);D. int max(int a,int b=0 , int c=0, intd=0);38 .以下函数不能和函数void print(char)构成重载的是(C ).A.int print(int) ; B.void print(char , char);C.int print(char) ; D.void print(int , int);39 . int Func(int , int);不可与以下哪个函数构成重载( B ).A . int Func(int , int, int); B. double Func(int,

13、 int);C. double Func(double , double); D . double Func(int, double);40 .定义函数模板中使用的参数类型标识符需使用以下哪组符号括起来(A ).A.<>B. ""C.()D.41 .设有函数T Sum(T x , T y)return x+y ; ,其中T为模板类型,那么以下语句中对该函数错误的 使用是(D ).A.Sum(1 , 2);B.Sum(3.0 , 2.2);C.Sum( ' A' ' C: ) D. Sum("A" , "C&q

14、uot;);42 .对于结构中定义的成员,其隐含访问权限为( C ).A. public B. protected C. private D. static43 . C+允许在结构中定义函数,这些函数称为( D ).A.静态函数B.构造函数C.析构函数D.成员函数44 .对使用关键字 new所开辟的动态存储空间,释放时必须使用( C ).A. free B. create C. delete D. realse45 .假定指针变量p定义为"int *p=new int30;,要释放p所指向的动态内存,应使用语句( D ).A. delete p; B. delete *p; C. d

15、elete &p; D. delete p;46 .要使语句“p=new int1020;能够正常执彳T,p应被事先定义为( D ).A. int *p; B. int *p; C. int *p20; D. int(*p)20;47 .使用delete口删除对象数组时,描述正确的选项是( A ).A.数组中各元素都调用析构函数B.数组中各元素都调用构造函数C.不调用析构函数D.只有首元素调用析构函数48 .有关类的说法不正确的选项是(D ).A.类是一种用户自定义的数据类型B.类中的成员函数可以存取类中的私有数据C.在类中,如果不作特别说明,所有的数据均为私有类型D.在类中,如果不作

16、特别说明,所有的成员函数均为公有类型49 .在以下关键字中,用以说明类中公有成员的是(A ).A. public B. private C. protected D . friend50 .以下哪个不是面向对象的关键要素( B ).A.抽象性B.结构性C.封装性D.多态性51 .以下可以不是类的成员函数的是(C ).A.构造函数B.析构函数 C.友元函数D.复制构造函数52 . print()函数是一个类的常成员函数,它无返回值,以下表示中,正确的选项是( A ).A . void print() constB. const void print()C. void const print D

17、. void printconst53 .在定义类成员时,为产生封装,f那么需使用哪个关键字 D .A.public B.publish C.protected D.private54 .如没有使用private关键字定义类的数据成员,那么默认为 A .Aprivate B publicC protectedD friend55 .类的私有成员可在何处被访问A .A.本类的成员函数中B.本类及子类的成员函数中C.通过对象名在任何位置D.不可访问56 . this指针存在的目的是 B .A .保证基类公有成员在子类中可以被访问B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码C.保

18、证基类保护成员在子类中可以被访问D .保证基类私有成员在子类中可以被访问57 .有关构造函数的说法不正确的选项是D .A.构造函数名字和类的名字一样B.构造函数在定义对象时自动执行C.构造函数无任何函数类型D.构造函数有且只有一个58 .为对象进行初始化的是C .A.析构函数 B.数据成员C.构造函数D.静态成员函数59 .类的构造函数在以下什么情况下会被自动调用B .A.定义成员函数时B.定义对象时C.定义数据成员时D.定义友元函数时D .B.构造函数可以重载60 .构造函数不具备的特征的是A.构造函数的函数名与类名相同C.构造函数可以设置默认参数D.构造函数必须指定类型说明61 . 一个类

19、拥有多个构造函数,那么这些构造函数间为A .A.重载关系B.重复关系C.拷贝关系 D.无关系62 .如果没有为一个类定义任何构造函数的情况下,以下描述正确的选项是A .A .编译器总是自动创立一个不带参数的构造函数B.这个类没有构造函数C.这个类不需要构造函数D .该类不能通过编译63.对于拷贝构造函数point:point(point& p),以下说明正确的选项是 C .A.该函数只能访问P的私有成员C.该函数可以访问P的私有和公有成员B.该函数不能访问P的公有成员D.该函数不能访问 P的成员64.通常,拷贝构造函数的参数是A.某个对象名 B.某个对象的成员名C .C.某个对象的引用

20、名D.某个对象的指针名65.假定AB为一个类,那么执行“AB a4 , b3, * p2;语句时,自动调用该类构造函数的次数为 B .A. 3 B. 4 C. 6 D. 966 .以下关于析构函数描述正确的选项是D .A.可以重载B.函数体中必须有 delete语句C.返回类型必须是 void类型D.不能指定返回类型67 .类的析构函数是在 C 调用的.A.类创立时B.创立对象时C.删除对象时D.不自动调用68 .类的析构函数的作用是 D .A.一般成员函数B.类的初始化C.对象的初始化D.撤消对象时做清理工作69 .下述静态数据成员的特性中,错误的选项是D .A.说明静态数据成员时前边要加修

21、饰符staticB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员前加类名和作用域运算符D.静态数据成员不是所有对象所共有的70 .设类Test中存在成员static int x ,那么以下哪种初始化方式是正确的 C .A.Test:int x=25 ; B.int x=25 ; C.int Test:x=25 ; D.int Test x=25 ;71 .以下关于友元的描述错误的选项是 A .A.成员函数不可作友元C.普通函数可以作友元72.对于友元描述正确的选项是A.友元是本类的成员函数C.友元不是函数B.类可以作友元D.静态函数可以作友元B .B.友元不是本类的

22、成员函数D .友元不能访问本类私有成员oB.类B的成员即类A的成员D.类B不一定是类A的友元A .实现两个AB类对象的加法,并返回相加结果,A. AB operator+AB&a,AB&bC. operator+AB a76 .继承的机制是 C .A.信息隐藏B.数据封装77 .关于私有继承,以下说法错误的选项是B. AB operator+(AB& a)D. AB & operator+( )C.定义新类D.数据抽象B ).73 .如果类A被说明成类B的友元,那么DA.类A的成员即类B的成员C.类A的成员函数不得访问类 B的成员74 .以下运算符中,在 C+中

23、不能重载运算符是A. ? :B. +C. - D.=75 .假定要对类AB定义“+号操作符重载成员函数, 那么该成员函数的声明语句为 B .派生类的其他成员可以直接派生类的其他成员不能直接A.基类的公有成员和保护成员被继承后作为派生类的私有成员, 访问他们.B.基类的公有成员和保护成员被继承后作为派生类的私有成员, 访问他们.C.派生类的成员和派生类的对象都无法访问基类的私有成员.D.派生类的对象无法访问基类的所有成员.78 .在公有继承中,基类中的保护成员作为派生类的 C .A.公有成员B.私有成员C.保护成员D.私有成员函数79 . C+类体系中,不能被派生类继承的有A .A.构造函数B.

24、虚函数 C.静态成员函数D.赋值操作函数80 . C+类体系中,能被派生类继承的是 B .A.构造函数B.虚函数 C.析构函数D.友元函数81 .基类中的 C 不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏水平, 又提供了开放的接口.A.公有成员 B.私有成员 C.保护成员D.私有成员函数82 .设类A将其它类对象作为成员,那么建立 A类对象时,以下描述正确的选项是 B .A. A类构造函数先执行B.成员构造函数先执行C.两者并行执行D.不能确定83 .在哪种派生方式中,派生类可以访问基类中的protected成员B .A. public 和 privateB. public 和

25、protectedC. protected 和 privateD.仅 protected84 .派生类的对象可以访问以下那种情况继承的基类成员D.A.私有继承的私有成员B.公有继承的私有成员C.私有继承的保护成员D.公有继承的公有成员85 .在继承中,派生类拥有白基类个数为 D .A.0个 B.1个 C.多个D.至少1个86 .基类中的protected成员,通过public派生,其在派生类中的可见性为 C .A.不可访问 B.privateC.protectedD.public87 .下面关于C+中类的继承与派生的说法错误的选项是: C .A.基类的protected成员在公有派生类的成员函

26、数中可以直接使用B.基类的protected成员在私有派生类的成员函数中可以直接使用C.私有派生时,基类的所有成员访问权限在派生类中保持不变D,继承可以分为单一继承与多重继承88 .以下关于继承的描述中,正确的选项是D .A.继承不是类之间的一种关系B.C+语言仅支持单一继承C.继承会增加程序的冗余性D.继承是面向对象方法中一个很重要的特性89 .以下关于派生类构造函数的描述中,错误的选项是A .A.派生类构造函数应包含直接基类和所有间接基类的构造函数B.派生类构造函数仅包含直接基类构造函数和其他如子对象类构造函数等C.派生类构造函数通常带有成员初始化表D.派生类默认构造函数中隐含包括直接基类

27、的默认构造函数90 .如果一个类至少有一个纯虚函数,那么就称该类为A .A.抽象类 B.虚基类 C.派生类 D.以上都不对二、填空题1 .在C+中,声明布尔类型变量所用的关键字是BOOL .2 .执行以下代码int b=100 ;cout<<"Hex : "<<hex<<b ;程序的输出结果是 Hex: 64.3 .执行以下代码cout << " Hex << hex << 255程序的输出结果为 Hex:仟 .4 .执行"cout <<char'A'+2

28、<<endl;语句后得到的输出结果为 C .5 . C+语言中可以实现输出一个换行符并刷新流功能的操控符是endl .6 . cout实际上是C+系统定义的对象名,称为输出流对象.7 .假设使用标准输出流把整型变量a的值输出到屏幕上,实现此操作的C+语句是 cout<<a;.8 . C+将数据从一个对象流向另一个对象的流动抽象为流,从流中获取数据的操作称为提取操作.9 .使用cin和cout进行输入输出操作的程序必须包含头文件 iostream或iostream.h,其指令格式为#include<iostream>.10 .假设要使用C+标准类库,需要指定相

29、应的命名空间,所用的语句是 using namespacestd;.10. C+的注释行以/开头.11 . 一般编译系统给出的出错信息分为两种:一种是错误或error ;一种是 警告或 warning.12 .转义字符't'在内存中占1 个字节.13 .将一个字符常量存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的 ASCII 代码放到存储单元中.14 .变量必须先 定义 ,后 使用 .15 .在定义变量时,如果加上关键字const ,那么变量的值在程序运行期间不能改变,这种变量称为常变量.16 .数学式子 0<x<5 ,在 C+中表示

30、为x>0&&x<5.17 .循环结构中,要提前结束本次循环的语句是continue.18 .如果被调用的函数的定义出现在主调函数之后,需要对被调用的函数进行声明.19 .定义内联函数所用的关键字是 inline ,定义友元所用的关键字为 friend.20 .重载函数的参数 个数 、参数 类型 或参数参数顺序三者中必须至少有一种不同.21 .字符串的结束标志是0'.22 . C+提供了一种用于处理字符串的数据类型,叫 字符串类型或string类型.23 . C+语言的函数参数传递方式有传值和传地址 两种方式.24 . C+语言中的,每条复合语句以作为结束符.

31、25 .变量分为全局和局部两种, 局部 变量没有赋初值时,其值是不确定的.26 . C+程序必须有且只有一个主函数,其函数名为main .27 .假设有函数定义为:int addint ml=0 , int m2=2 , int m3=4return ml+m2+m3 ; 在主函数中有 int s=add1+add0 , 1+add0, 1, 2;那么执行此语句后s的值为15.28 .在源程序中有宏定义:#define PI 3.14,那么假设不想使该宏定义影响到程序的其它地方,可以使用 删除该宏定义.#undef PI29 .设在程序中使用如下语句建立了一个对象数组:Point * ptr

32、= new Point2;那么在需要释放ptr指向的动态数组对象时,所使用的语句是delete口ptr;.30 .声明一个名为a的整型引用变量所使用的语句是 int &a ;.31 . C+支持面向对象程序设计的四个要素是:封装性、抽象 、继承和派生和 多态性.32 .在用class定义一个类时,数据成员和成员函数的默认访问权限是private .33 .类A有如下成员函数int A:fundouble xreturn int x /2; int A:funint xreturn x*2 ; 设a为类 A的对象,在主函数中有 int s=a.fun6.0+a.fun2,那么执行该语句后

33、,s的值为34 7.34 .使用对象引用作为函数参数,实参对象和形参对象代表同一对象,改变形参对象的值就是改变实参对象的值.35 . C+类的构造函数名与 类同名,且没有返回值.36 . C+规定,当一个成员函数被调用时,系统自动向它传递一个隐含的参数,该参数是一个指向调用该函数的对象的指针,该指针被称为this 指针.37 .声明一个常成员函数Fun,其返回类型为char,第一个参数类型为int,第二个参数类型为double,函数 Fun 的声明原型是 char Funint ,double const ;.38 .当一个成员函数被调用时,该成员函数的 this指针指向调用它的对象.39 .

34、在C+中,可以在定义对象时加关键字const,指定对象为 常 对象.40 . const成员函数可以访问常对象中的数据成员,但不能 修改 数据成员的值.41 . 一个const对象只能访问 const 成员函数.42 .假定AB为一个类,那么执行 “AB a10;语句时,系统自动调用该类的构造函数的次数为10.43 .类和其它数据类型不同的是,组成这种类型的不仅可以有数据,还可以有对数据进行操作的成员函数.44 .对于类Point而言,其析构函数的定义原型为Point.45 .调用构造函数和析构函数的顺序是:先构造的 后 析构,后构造的 先 析构.46 .拷贝构造函数使用引用 作为参数初始化创

35、立中的对象.47 .运算符口只能用 成员 函数来重载,不能用友元函数来重载.48 . C+中用于动态创立对象,并返回该对象的指针的关键字是new .成员 函数.和语法结构.49 .重载赋值操作符时,运算符重载函数应声明为50 .重载的运算符仍保存原有的优先级、 结合性51 . C+重载“=运算符的函数名是operator= 52 .从一个或多个以前定义的类产生新类的过程称为 派生53 .类的继承是指子类继承基类的数据成员54 .派生类的构造函数的一般形式中,通常应包含构造函数.和成员函数.基类 构造函数和派生类 公用 成员和 保护成员在派生类中55 .在公有继承的情况下,基类的 的访问权限不变

36、.、 私有的. 构造函数65.派生类对基类继承方式有三种 公用的 、 保护的57 .派生类继承的基类成员的初始化,需要由派生类的构造函数调用基类的来完成.58 .在保护派生中,基类权限为private的成员在派生类中不可访问.59 .在C+类中,有一种不能定义对象的类,这样的类只能被继承, 称之为 抽象类定义该类至少具有一个纯虚 函数.60 .用 class virtual声明的基类称为虚基类.61 .用virtual 声明的函数称为虚函数.62 .定义虚函数所用的关键字是 virtual .63 .带有纯虚函数的类称为抽象类,它只能作为基类 来使用.64 .不同对象可以调用相同名称的函数,但

37、可导致完全不同的行为的现象称为 多态性 .65 . C+语百支持两种多态性,分别是静态多态性和动态多态性66 .静态关联所支持的多态性称为 编译时 的多态性.67 .动态关联要满足两个条件,它们是用指针或引用调用的成员函数卜成员函数为虚函数.68 .动态关联是程序运行到需要的语句处才动态确定的,这称为运行时 多态性.69 .用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符 .70 .任何一个对象都应当具有两个要素:即 属性 和 行为.71 .可以对一个对象进行 封装 处理,把它的一局部属性和功能对外界屏蔽,也就是说 从外界是看不到的、甚至是不可知的.72 .类是对象的

38、 抽象 ,而对象那么是类的 具体化 .73 . 一个对象所占有的存储空间大小只取决于该对象中数据成员 所占的空间.74 . C+专门设立了一个名为 this 的指针,用来指向不同的对象.75 .访问对象中的成员可以有 3种方法:通过对象名和成员运算符访问、通过指向对象的指针访问、通过对象的引用 访问.76 .通过成员函数对数据成员进行操作称为类的功能的实现.77 .类中被操作的数据是私有的,类的功能的实现细节对用户是隐蔽的,这种实现称为私有实现.78 .类的公用接口和私有实现的别离形成了信息隐蔽.79 .运算符重载的方法是定义一个重载运算符的函数.80. 一个派生类只从一个基类派生,这称为单继

39、承.三、写出以下程序运行结果1.#include "iostream"using namespace std;class testprivate:int num;float f1;public:test();int getint()return num;float getfloat()return f1;test();test:test() cout<<"Initalizing default."<<endl;num=0;f1=0.0;test:test() cout<<"Destructor is acti

40、ve."<<endl;void main() test array2;cout<<array1.getint()<<" "<<array1.getfloat()<<endl;答: Initalizing default.Initalizing default.0 0Destructor is active.Destructor is active.Press any key to continue2.#include <iostream>#include <string.h>usi

41、ng namespace std;class Person(public:Person(char* pN);Person(Person& p);Person();protected:char* pName;Person:Person(char* pN)(cout"Constructing " <<pN <<endl;pName=new charstrlen(pN)+1;if(pName!=0)strcpy(pName, pN);Person:Person(Person & p)(cout"Copying " <

42、;<p.pName <<" into its own blockn"pName=new charstrlen(p.pName)+1;if(pName!=0)strcpy(pName, p. pName);Person:Person()(cout"Destructing " <<pName <<endl;pName0='0'delete pName;void main()(Person p1("Randy");Person p2=p1;Z/IP Person p2(p1);答:C

43、onstructing RandyCopying Randy into its own blockDestructing RandyDestructing RandyPress any key to continue3.#include<iostream.h>int a=5;void main() int b=a+20;int a=10;couta' 'bendl; int a=0,b=0;for(int i=1; i<6; i+) a+=i; b+=a;)cout<<a<<' '<<b<<end

44、l;) cout<<a<<' '<<b<<endl;)答:10 2515 3510 25Press any key to continue4.#include<iostream.h>class Basepublic:virtual void fn() cout <<"In Base classn" );class SubClass :public Basepublic:virtual void fn() cout <<"In SubClassn" ;voi

45、d test(Base& b)b.fn(); void main() Base bc;SubClass sc;cout <<"Calling test(bc)n"test(bc);cout <<"Calling test(sc)n"test(sc);答:Calling test(bc)In Base classCalling test(sc)In SubClassPress any key to continue5.#include<iostream>using namespace std;void main(

46、)int num=300;int &ref=num;cout<<ref;ref=ref-100;cout<<" "<<num;num=num-50;cout<<" "<<ref<<endl;)答:300 200 150Press any key to continue6.#include < iostream.h >class Classpublic:static int var;Class()var+; );int Class:var = 0;void main

47、()cout <<"Class:var ="<< Class:var << endl;Class cl;cout <<"cl. var="<<cl. var <<endl;Class c2, c3 ;cout <<"c2. var =" << c2. var <<endl;答:Class:var =0cl. var=1c2. var =3Press any key to continue7.#include <iostre

48、am.h >class Apublic:A();void Show();A();private:static int c;int A:c=0;A:A() cout << "constructor." << endl; c+=10;void A:Show()cout<<"c=" <<c<<endl; A:A()cout <<"destructor. "<< endl;void main() A a,b;a.Show();b.Show();答:con

49、structor.constructor.c=20c=20destructor.destructor.Press any key to continue一、另外,熟悉以下教材内容:1、例题第1章:1.4包含类Student的C+程序写程序运行结果第4章:4.9 max函数的重载写程序运行结果4.11 max函数带默认参数写程序运行结果4.12 静态局部变量写程序运行结果第5章:5.11 写程序运行结果第6章:6.18交换两变量的值,引用作形参 写程序运行结果第8章:8.3 Time类编程题第9章:9.3构造函数重载无参和有参写程序运行结果9.4默认参数的构造函数写程序运行结果第10章:10.2

50、 编程题10.3 编程题10.5 写程序运算结果10.7 编程题10.8 编程题 10.10 编程题第11章11.5 写程序运算结果11.6 写程序运算结果11.7 写程序运算结果11.9 写程序运算结果第12章12.2 display.为非虚函数和虚函数的情况写程序运行结果12.4虚函数和抽象基类的应用写程序运行结果2、课后习题第1章:5 6 7 10 写程序运行结果第6章:11 10个字符串排序,用string数组方法做.写程序运行结果第8章:6求长方体体积.编程题第9章:6 写程序运行结果8对象引用作形参编程题,写程序运行结果第10章:2 (编程题)3 (编程题)第11章7 (写程序运算

51、结果)8 (写程序运算结果)第12章4虚函数和抽象基类的应用(编程题)5虚函数和抽象基类的应用(编 程题)二、布置的任务1设计一个三角形类,类名Triangle,数据成员:三条边a、b、c,数据类型为double. 成员函数:(1)带有默认参数的构造函数,默认值分别为3、4、5; (2)计算三角形面积函数area; (3)输出函数output,输出面积.在主函数中定义2个三角形对象,利用构造 函数进行初始化,一个的边长分别为3、4、5,另一个边长分别为12、18、19.输出这2个三角形的面积.#include<iostream>#include<cmath>using

52、namespace std;class Trianglepublic:Triangle (double a1=3,double b1=4,double c1=5):a(a1),b(b1),c(c1) void output();double area();private:double a;double b;double c;int main()Triangle t1,t2(12,18,19);t1.area();t1.output();t2.area();t2.output();return 0;void Triangle二output()cout<<"边长分别为:&qu

53、ot;<<a<<" "<<b<<" "<<c<<" "<<"的三角形的面积为: "<<area()<<endl;)double Triangle:area()(double s,result;s=(a+b+c)/2;result=sqrt(s*(s-a)*(s-b)*(s-c);return result;)提示:三角形面积的计算公式 area=sqrt(s*(s-a)*(s-b)*(s-c),其中s为半周长

54、,a、 b、c为边长,sqrt()为开平方函数.2设计一个矩形类,类名 Rectangle,数据成员:长(length)和宽(width),数据类型 为float,成员函数:(1)带有默认参数的构造函数,默认值分别为8、8; (2)计算面积函数area; (3)输出函数output,输出长、宽和面积.在主函数中输出三个矩形的长、宽和 面积,长和宽自己设定.#include<iostream>using namespace std;class Rectangleprivate:float length;float width;public:Rectangle(float l=8,fl

55、oat w=8):length(l),width(w)void output();float area();void Rectangle:output()cout<<"长为:"<<length<<"宽为:"<<width<<"的面积为:"<<area()<<endl;float Rectangle:area()float area=length*width;return area ;int main() Rectangle r1,r2(9,9);r1.

56、area();r1.output();r2.area();r2.output();return 0;)3设计一个圆类,类名Circle ,数据成员:半径r,数据类型为float,成员函数: (1)带有默认参数的构造函数,默认值为8; (2)计算面积函数area,圆周率取3.14; (3)输出函数output,输出半径和面积.在主函数中输出2个圆的半径和面积,半径分别为 8 和 98.9.#include<iostream>using namespace std;class Circleprivate:float r;public:Circle:Circle (float r1=8)

57、:r(r1)void output();float area();void Circle:output()cout<<"半径为:"<<r<<"的圆的面积为:"<<area()<<endl;float Circle:area()float area=3.14*r*r;return area ;int main() Circle c1,c2(98.9);c1.area();c1.output();c2.area();c2.output();return 0;4设计一个销售类,类名 Sale,计算某种型号笔记本电脑某天的总销售额,数据成

温馨提示

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

评论

0/150

提交评论