2024年C++程序设计语言题库_第1页
2024年C++程序设计语言题库_第2页
2024年C++程序设计语言题库_第3页
2024年C++程序设计语言题库_第4页
2024年C++程序设计语言题库_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

《C++程序设计語言》題库一:填空題:1、在用class定义一种类時,数据组员和组员函数的默认访問权限是()。2、具有纯虚函数的类称為()。3、已知一种类AA,其默认构造函数的函数原型是()。4、對一种类中的数据组员的初始化可以通過构造函数中的()实現,也可以通過构造函数中的()实現。5、假定AB為一种类,则执行“ABa【10】;”語句時,系统自動调用该类的构造函数的次数為()。6、假定类AB中有一种公用属性的静态数据组员bb,在类外不通過對象名访問该组员bb的写法為()。7、在#include命令中所包括的頭文献,可以是()定义的頭文献,也可以是()定义的頭文献。8、已知类AA有一种构造函数為:AA(intval),目前要再動态分派1個AA對象,初始值為2,用pw寄存其地址,語句為()。9、在每個非静态组员函数中,都包括一种隐含的参数,其参数名為()。10、静态数据组员在定义或阐明時,要加关键字()。11、假定顾客没有給一种名為AB的类定义析构函数,则系统為其隐含定义的析构函数為()。12、C++支持两种多态性:编译時的多态性和()時的多态性。13、C++支持两种多态性:()的多态性和运行時的多态性。14、假定类AB中有一种公用属性的整型静态数据组员bb,那么在类体外對其進行初始化為0的語句為()。15、假定运用new运算符動态為类AB分派了10個對象元素,并且用pr指针指向,目前要释放這10個對象,使用的語句為()。16、對于派生类(包括子對象)的构造函数,在定义對象時的构造函数的执行次序為:先执行(),再执行()。17、派生类可以分為()、()和保护派生。由()得到的派生类,其基类的所有公有组员都只能成為它的私有组员,而由()得到的派生类,基类的所有公有组员在派生类中也是公有的。18、()函数不是类的组员函数,不過它可以访問类的私有数据组员。19、假如一种指针变量pr指向类AA的對象a,目前要通過pr访問AA的组员函数voidfun();其語句為()。20、已知类AB有两個构造函数,函数原型分别是AB(int);和AB(int,int);目前要创立一种属性值為2對象a,其定义語句為()。21、已知类AA,目前要定义它的复制构造函数,则其函数原型為()。22、已知类AA,有下面的語句:AAa;和AAb=a;那么创立對象b是通過调用()来完毕的。23、在C++中,可以把具有相似内部存储构造和相似操作的對象當作属于同一类。在指定同一种类後,往往把属于這個类的對象称為类的(),從語言角度来說,类是一种数据类型,而()是具有這种类型的变量。24、在C++中,動态多态性是通過定义()来实現的。25、C++容許一种派生类同步继承多种基类,這种行為称為()。26、C++提供()使得在继承间接共同基类時只保留一份组员。27、目前要实現将double类型的数据转换為类Complex类型的對象,则在类Complex中实現的措施原型語句是()。28、()的作用是将一种类的對象转换成另一类型的数据。29、()的作用是将一种其他类型的数据转换成一种类的對象。30、顾客定义的类型的数据,是不能直接用“<<”输出的,目前要实現输出类Complex(其数据组员為私有)的對象,则顾客需要定义的“<<”重载函数原型為(),它必须是类Complex的()。31、對双目运算符,重载為组员函数時,需要()参数,重载為友元函数時需要()参数。32、假如把双目运算符“+”定义為某個类Complex的运算符重载组员函数,C1和C2是Complex的對象,假如有体現式C1+C2;则编译程序對该表达式給出的解释語句為()。33、Cin是()的一种對象,处理原则输入。Cout是()的對象,处理原则输出。34、進行文献操作時,需要包括()文献。35、使用如setw()的操作對数据進行格式输出是,应包括()文献。36、可以用来阐明类中保护组员的关键字是()。37、()的功能是對對象進行初始化。38、在基类中用关键字()申明的组员函数為虚函数。39、静态多态性是通過()来实現的。40、类AA的复制构造函数的函数原型是()。41、设px是指向一种类動态對象的指针变量,则执行“deletepx;”語句時,将自動调用该类的()。42、若需要把一种函数“voidF();”定义為一种类AB的友元函数,则应在类AB的定义中加入一条語句()。43、若要在程序文献中進行原则输入输出操作,则必须在開始的#include命令中使用()頭文献。44、执行語句序列intx=10,&r=x;cout<<x<<’,’<<r<<endl;输出成果是()。45、派生类中的组员不能直接访問基类中的()组员。46、多数运算符既能作為类的组员函数重载,也能作為类的非组员函数重载,但【】运算符只能作為类的()函数重载。47、請将下列类定义补充完整。Classbase{public:voidfun(){cout<<”base::fun”<<endl;}};Classderived:publicbase{public:voidfun(){()//显式调用基类的fun函数cout<<”derived::fun”<<endl;}};48、非组员函数应申明為类的()函数才能访問這個类的private组员。49、算法复杂度重要包括時间复杂度和()复杂度。50、要运用new動态分派一种int数据,并用pr指向,将该数据初始化為2,其定义語句為()。51、()属于静态多态性。52、面向對象程序设计有4個特點()、()、()、()。53、已知一种函数的原型為intfun(int=10,int=20);假如有如下调用語句fun();等价于调用()語句。54、假如有如下函数原型語句intmax(int=10,int);应修改為()才能保证该語句對的。55、重载函数至少在()、()或参数次序上有所不一样。56、已知inta=10,b=20;目前要设置a和b都以5個宽度输出,其對的的输出語句為()。57、目前要對D:\abc.txt文献進行输入操作,可以定义()語句来实現。58、已知基类AA的公有组员措施為voidfun();通過()继承方式其在派生类内成為不可访問组员。59、假如某個类中包具有子對象,则该类對象被创立,首先调用(),然後调用()。60、假如要将基类Shape中的floatArea()申明為纯虚函数,使用的語句為()。二:选择題:1、C++語言是從初期的C語言逐渐发展演变而来的,与C語言相比,它在求解問題措施上進行的最大改善是()。A、面向過程B、面向對象C、安全性D、复用性2、下列高级語言中,()是面向對象的程序设计語言。A、BASICB、C++C、CD、PASCAL3、下列有关C++函数的论述中對的的是()。A、每個函数至少要有一种参数B、每個函数都必须返回一种值C、函数在调用之前必须先申明D、函数不能自已调用自已4、下列有关类和對象论述錯误的是()。A、一种类只能有一种對象B、對象是类的详细实例C、类是對某一类對象的抽象D、类和對象的关系是一种数据类型与变量的关系5、有关类的說法不對的的是()。A、类是一种顾客定义的数据类型B、只有类中的组员函数才能存取类中的私有数据C、在类中,不作尤其阐明,所有的数据均為私有数据类型D、在类中,不作尤其阐明,所有的数据均為公有数据类型6、有如下类的阐明,指出錯误的地方有()处Classcsample{inta=2;Public;csample(intval);~csample(intval);}A、1B、2C、3D、47、有关构造函数說法不對的的是()。A、构造函数名和类名相似B、构造函数在阐明类的對象時自動执行C、构造函数没有任何函数类型D、构造函数有且只有一种8、下列有关构造函数的描述中,錯误的是()A、构造函数可以设置默认参数B、构造函数在定义类對象時自動执行C、构造函数可以是内联函数D、构造函数不可以重载9、有关析构函数說法不對的的是()A、析构函数有且只有一种B、析构函数在类對象被撤销時自動执行C、析构函数没有任何函数类型D、析构函数可以有参数10、()是析构函数的特性。A、一种类中只能定义一种析构函数B、析构函数名与类名不一样C、析构函数的定义只能在类体内D、析构函数可以有一种或多种参数11、()函数的功能是對對象初始化。A、析构函数B、数据组员C、构造函数D、静态组员函数12、如有下列类的申明:Classfoo{intbar;};则类的组员bar是()A、公有数据组员B、公有组员函数C、私有数据组员D、私有组员函数13、下列有关运算符重载论述中,對的的是()A、通過运算符重载可以定义新的运算符B、有的运算符只能作為组员函数重载C、若重载运算符—,则對应的函数名為—D、重载一种2元运算符時,必须申明两個参数14、考虑函数原型voidtest(inta,intb=7,char=“*”),下面的函数调用中,属于不合法调用的是()A、test(5);B、test(5,8);C、test(6,“#”);D、test(0,0.”*”);15、對于語句cout<<endl<<x;中的各個构成部分,下列论述中錯误的是()A、“cout”是一种输出流對象B、“endl”的作用是输出回車换行C、“x”是一种变量D、“<<”称作提取运算符16、下面有关重载函数的說法中對的的是()A、重载函数必须具有不一样的返回值类型B、重载函数形参個数必须不一样C、重载函数必须有不一样的形参列表D、重载函数名可以不一样17、下面描述中,体現錯误的是()A、公有继承時基类中的public组员在派生类中仍是public的B、公有继承時基类中的private组员在派生类中仍是private的C、公有继承時基类中的protected组员在派生类中仍是protected的D、私有继承時基类中的public组员在派生类中是private的18、应在下列程序划线处填入的對的語句是()#include<iostream>Classbase{public:voidfun(){cout<<”base::fun”<<endl;}};Classderived:publicbase{public:voidfun(){()//显式调用基类的函数fun()cout<<”derived::fun”<<endl;}};A、fun();B、base.fun();C、base::fun();D、base->fun();19、下列字符串中,對的的C++標识符是()A、foo-1B、2bC、newD、_25620、在C++中用于实現运行時多态性的是()A、内联函数B、重载函数C、模板函数D、虚函数21、()只能访問静态组员变量,静态组员函数和类以外的函数和数据不能访問类中的非静态组员变量。A、静态函数B、虚函数C、构造函数D、析构函数22、局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形時,可以用()A、域运算符B、类运算符C、重载D、引用23、在下列关键字中,可以用来阐明类中保护组员的是()A、publicB、privateC、protectedD、friend24、下列的各类函数中,()不是类的组员函数A、构造函数B、析构函数C、友元函数D、复制构造函数25、對于公有派生来說,派生类不可以直接访問基类的()组员A、公有组员B、保护组员C、私有组员D、都不是26、C++中的类有两种使用方法:一种是类的实例化,另一种是通過(),派生出新的类A、复用B、继C、單继承D、多继承27、假定AB為一种类,则该类的拷贝构造函数的申明語句為()A、AB&(ABx)B、AB(ABx)C、AB(AB&x)D、AB(AB*x)28、假定要對类AB定义加号操作符重载组员函数,实現两個AB类對象的加法,并返回相加成果,则该组员函数的申明語句是()A、ABoperator+(AB&,AB&)B、ABoperator+(AB&)C、operator+(AB)D、ABoperator+()29、假定AB為一种类,则执行“ABA【10】;”語句時,系统自動调用该类的构造函数的次数為()A、10B、9C、8D、730、假定AB為一种类,则执行“ABa(4),b【3】,*p【2】;”語句時,系统自動调用该类的构造函数的次数為()A、3B、4C、6D、931、假定AB為一种类,则执行“AB*p;”語句時,系统自動调用该类的构造函数的次数為()A、10B、9C、8D、032、友元的作用()A、提高程序的运行效率B、加强类的封装性C、实現数据的隐藏性D、增長组员函数的种类33、下列关键字中,()不是类定义中使用的关键字。A、classB、publicC、switchD、private34、有关类的定义格式的描述,()是錯误的A、类中的组员函数既可以在类内实現,也可以在类外实現B、一般类中包具有数据组员和组员函数C、类中组员函数有三种访問权限:公有、私有和保护D、组员函数都应是公有的,数据组员都应是私有的35、类模板的使用实际上是将类模板实例化成一种详细的()A、类B、對象C、函数D、模板快36、下列静态数据组员的特性中,()是錯误的A、阐明静态数据组员時,前边要加修饰符staticB、静态数据组员要在类体外進行初始化C、引用静态数据组员時,要在静态数据组员名前加类名和作用域运算符D、静态数据组员不是所有對象所共有的37、已知一种类AA,其组员函数是intfun(),p是指向组员函数intfun()的指针,采用()定义p是對的的。A、int*p=funB、int*p=AA::funC、int(AA::*p)()=&AA::funD、int(AA::*p)()=&fun38、已知print()函数是一种类的常组员函数,它没有返回值,函数体為空,下列表达中,()是對的的A、voidprint()const{}B、constvoidprint(){}C、voidconstprint(){}D、voidprintconst(){}39、有关new运算符,下列描述中,()是錯误的A、它可以用来動态创立對象和對象数组B、使用它创立的對象或對象数组,可以通過运算符delete删除C、使用它创立對象是要调用构造函数D、使用它创立對象数组必须指定初始值40、有关delete运算符,下列描述中,()是錯误的A、它必须用于new返回的指针B、它也合用于空指针C、對一种指针可以使用多次该运算符D、指针名前只用一對方括号符,不管所删除的数组维数41、已知:类A中一种组员函数的阐明如下:voidSet(A&a);其中,A&a的含义是()A、指向类A的指针為aB、将a的地址赋值給变量SetC、a是类A對象的引用,用来作函数Set()的形参D、变量A与a按位相与作為函数Set()的参数42、已知类AA的组员函数為voidfun(inta,intb),下面哪個函数可以作為它的重载函数()A、voidfun(inta=0,intb)B、voidfun(inta,intb=0)C、voidfun(inta)D、voidfun(intm,intn)43、下列有关對象数组的描述,()是錯误的A、對象数组的下標是從0開始B、對象数组的数组名是一种常量指针C、對象数组的每一种元素是同一种类的對象D、對象数组只能赋初值,而不能在定义後赋值44、在下列函数原型中,可以作為类AA构造函数的是()A、voidAA(int)B、intAA()C、AA(int)constD、AA(int)45、下列有关this指针论述,對的的是()A、任何与类有关的函数均有this指针B、类的组员函数均有this指针C、类的友元函数均有this指针D、类的非静态组员函数才有this指针46、對于語句cout<<endl<<x;中的各個构成部分,下列论述中錯误的是()A、“cout”是一种输出流對象B、“endl”的作用是输出回車换行C、“x”是一种变量D、“<<”称作提取运算符47、运算符重载是對已經有的运算符赋予多重含义,因此()A、可以對基本类型(如int类型)的数据,重新定义“+“运算符的含义B、可以变化一种已經有运算符的优先级和操作個数C、只能重载C++中已經有的运算符,不能定义新运算符D、C++中已經有的所有运算符都可以重载48、下面是重载非组员函数的运算符函数原型,其中錯误的是()A、Fractionoperator+(Fraction,Fraction)B、Fractionoperator-(Fraction)C、Fractionoperator=(Fraction&,Fraction)D、Fractionoperator+=(Fraction&,Fraction)49、模板對类型的参数化提供了很好的支持,因此()A、类模板的重要作用是生成抽象类B、类模板实例化時,编译器将根据給出的模板生成一种类C、在类模板中的数据组员都具有同样类型D、类模板中的组员函数没有返回值50、下列有关派生类的描述中,()是錯误的A、一种派生类可以作另一种派生类的基类B、派生类至少有一种基类C、派生类的组员除了它自已的组员外,還包括了它的基类的组员D、派生类中继承的基类组员的访問权限到派生类中不变51、()不是构造函数的特性A、构造函数名和类名相似B、构造函数可以重载C、构造函数可以设置默认参数D、构造函数必须指定类型阐明52、派生类的對象對它基类组员中()是可以访問的A、公有继承的公有组员B、公有继承的私有组员C、公有继承的保护组员D、私有继承的公有组员53、對基类和派生类的关系描述中,()是錯误的A、派生类是基类的详细化B、派生类是基类的子集C、派生类是基类的延续D、派生类是基类的组合54、派生类的构造函数的组员初始化列表中,不能包括()A、基类的构造函数B、派生类中子對象的初始化C、基类的子對象的初始化、D、派生类中一般数据组员的初始化55、有关多继承二义性的描述中,()是錯误的A、一种派生类的两個基类中均有某個同名组员,在派生类中對這個组员的访問也許出現二义性B、处理二义性的最常用的措施是對组员名的限定法C、基类和派生类中同步出現的同名函数,也存在二义性問題D、一种派生类是從两個基类派生来的,而這两個基类又有共同的基类,對该基类组员進行访問時,也也許出現二义性56、设置虚基类的目的是()A、简化程序B、消除二义性C、提高运行效率D、減少目的代码57、带有虚基类的多层派生类构造函数的组员函数初始化列表中都要列出虚基类的构造函数,這样将對虚基类的子對象初始化()A、1次B、2次C、有下面的派生类的個数有关D、多次58、在C++語言中,若类C中定义了一种措施intf(inta,intb),那么下面()措施与该措施不能同步存在于类中。A、intf(intx,inty)B、intf(floatx,intB)C、floatf(intx,floaty)D、intf(intX,inty)已知3個类O、P、Q,类O中定义了一种私有措施F1,一种公有措施F2和一种受保护的措施F3;类P和类Q是类O的派生类,其继承方式如下所示:classP:protectedO{};classpublicO{…};作答下面3題59、有关措施F1的描述中對的的是()A、措施F1無法被访問B、只有在类O内才能访問措施F1C、只有在类P内才能访問措施F1D、只有在类Q内才能访問措施F160、有关措施F2的描述中對的的是()A、类O、P、Q的對象都可以访問措施F2B、类P和Q的對象都可以访問F2C、类O和Q的對象都可以访問F2D、只有在类P内才可以访問F261、有关措施F3的描述中對的的是()A、类O、P、Q的對象都可以访問措施F3B、类O、P、Q的對象都不可以访問措施F3C、类O和Q的對象都可以访問措施F3D、类P和Q的對象都可以访問措施F362、下列有关一种类的静态组员的描述中,不對的的是()A、该类的對象共享其静态组员变量的值B、静态组员变量可被该类的所有措施访問C、该类的静态措施只能访問该类的静态组员变量D、该类的静态数据变量的值不可修改63、下列运算符中,()运算符在C++中不能重载A、?:B、+C、—D、<=64、有关動态联编的下列描述中,()是錯误的A、動态联编是以虚函数為基础的B、動态联编是在运行時确定所调用的函数代码的C、動态联编调用函数操作是指向對象的指针或對象引用D、動态联编是在编译時确定操作函数的65、有关虚函数的描述中,()是對的的A、虚函数是一种static类型的组员函数B、虚函数是一种非组员函数C、基类中阐明了虚函数後,派生类中与其對应的函数可不必阐明為虚函数D、派生类的虚函数与基类的虚函数具有不一样的参数個数和类型66、有关纯虚函数和抽象类的描述中,()是錯误的A、纯虚函数是一种特殊的虚函数,它没有详细的实現B、抽象类是指具有纯虚函数的类C、一种基类中阐明有纯虚函数,该基类的派生类一定不再是抽象类D、抽象类只能作為基类来使用,其纯虚函数的实現由派生类給出67、下列描述中,()是抽象类的特性A、可以阐明虚函数B、可以進行构造函数重载C、可以定义友元函数D、不能阐明其對象68、()是一种在基类中阐明的虚函数,它在该积累中没有定义,但规定任何派生类都必须定义自已的版本。A、虚析构函数B、虚构造函数C、纯虚函数D、静态组员函数69、假如一种类至少有一种纯虚函数,那么就成该类為()A、抽象类B、虚基类C、派生类D、以上都不對70、進行文献操作時需要包括()文献A、iostream.hB、fstream.hC、stdio.hD、stdlib.h71、在下面的函数申明中,存在著語法錯误的是()A、voidBC(inta,int)B、voidBD(int,int)C、voidBE(int,int5)D、intBF(inta,int)72、通過()调用虚函数時,采用動态束定A、對象指针B、對象名C、组员名限定D、派生类名73、已知在一种类体中包括如下函数原型:volumeoperator-(volume)const;,下列有关這個函数的论述中,錯误的是()A、這是运算符-的重载运算符函数B、這個函数所重载的运算符是一种一元运算符C、這是一种组员函数D、這個函数不变化类的任何数据组员74、在下列函数原型中,可以作為类AA构造函数的是()A、voidAA(int);B、intAA();C、AA(int)const;D、AA(int);三:判断題1、运算符重载可以变化运算符的個数。()2、纯虚函数是一种特殊的虚函数,它没有详细的实現、()3、一种派生类可以作為另一种派生类的基类。()4、對象数组的下標是從0開始的。()5、使用new创立的對象,可以使用delete删除。()6、友元的作用是加强类的封装性。()7、组员函数可以设置参数的默认值。()8、类和對象的关系和数据类型和变量的关系相似。()9、進行文献操作時,需要包括fstream.h文献。()10、静态组员函数不能访問类的非静态数据组员。()11、在C++中,標识符的大小写没有辨别。()12、面向對象的程序设计師将数据与對数据的操作放在一起,作為一种互相依存,不可分割的整体类来实現的。()13、类是一种抽象的概念,而對象则是一种详细的概念。()14、控制格式I/O操作,可以通過setw()来设置域宽()15、動态联编是在编译時就已确定操作的函数。()16、析构函数不可以重载。()17、重载函数在被调用時,可以根据函数名称来确定要调用的函数。()18、设置虚基类的目的是消除二义性。()19、静态组员函数可以访問类的非静态数据组员。()20、已知print()函数是类的友元函数,则可以访問类的私有数据组员。()21、C++語言和C語言都是面向對象的程序设计語言。()22、类是具有共同行為的若干對象的统一描述体。()23、常组员函数可以访問并修改非const数据组员。()24、C++中任意的运算符都可以進行重载。()25、析构函数可以返回值。()26、只有在派生类中對基类的所有纯虚函数都進行重新定义,否则,该派生类仍為抽象类。()27、静态组员函数不能访問类的非静态数据组员。()28、所有的C++运算符都可以重载。()29、假如一种类至少有一种纯虚函数,那么就称该类為抽象类。()30、動态联编是在程序运行時确定操作数的。()31、析构函数不能重载。()32、對象数组只能赋初值,而不能在定义後赋值。()33、构造函数可以返回值。()34、构造体中的数据和组员函数默认类型為私有。()35、通過虚基类可以实現動态多态性。()36、在多继承中,公有派生和私有派生對于基类组员的可访問性与單继承的规则不一样。()37、派生类的對象可以访問基类中任何组员。()38、构造函数可以申明為虚函数。()39、包括虚函数的类就称為抽象类。()40、抽象类不可以定义對象。()41、静态组员函数不受限于某個對象,故而静态组员函数不能是虚函数。()42、只有类的组员函数才有也許申明為虚函数。()43、内联函数不能申明為虚函数。()44、在类体内定义的组员函数,系统會自動把它當做内联函数来处理。()45、要实現文献操作,可以包括文献iostream。()46、在类内部定义的组员函数默认為内联函数。()47、C++系统提供的默认构造函数体一定為空,不過其复制构造函数函数体也許不為空。()48、要想实現動态多态性,必须要用基类的指针或引用去调用虚函数。()49、构造函数不能申明為虚函数。()四:写出程序运行成果:1、#include<iostream.h>classA{inta,b;public: A(){a=b=0;cout<<a<<''<<b<<endl;} A(intaa,intbb){a=aa;b=bb; cout<<a<<''<<b<<endl;}};voidmain(){Ax,y(2,3),z(4,5);}2、#include<iostream.h>classA{inta,b;public: A(intaa,intbb){a=aa;b=bb; cout<<"Constructor!"<<endl; cout<<a<<''<<b<<endl;}};voidmain(){Ay(2,3),z(4,5);}3、#include<iostream.h>classA{inta;public: A(intaa){a=aa; cout<<"Constructor!"<<endl; cout<<a<<endl;} ~A(){cout<<"Destructor!"<<endl;}};voidmain(){Ay(2),z(5);}4、#include<iostream.h>classSample{intA;staticintB;public: Sample(inta){A=a,B+=a;} staticvoidfunc(Samples);}; voidSample::func(Samples) {cout<<"A="<<s.A<<",B="<<B<<endl;}intSample::B=0;voidmain(){Samples1(2),s2(5);Sample::func(s1);Sample::func(s2);}5、#include<iostream>usingnamespacestd;classSample{public: intx,y; Sample(){x=y=0;} Sample(inta,intb){x=a;y=b;} voiddisp() {cout<<"x="<<x<<",y="<<y<<endl;}};voidmain(){Samples1(2,3),s2;s1.disp();s2.disp();}6、#include<iostream>usingnamespacestd;classSample{public: intx,y; Sample(){x=y=0;cout<<"Constructor1"<<endl;} Sample(inta,intb){x=a;y=b;cout<<"Constructor2"<<endl;} voiddisp(){cout<<"x="<<x<<",y="<<y<<endl;}};voidmain(){Samples1(2,3),s2;s1.disp();s2.disp();}7、#include<iostream.h>classTdate{public: Tdate(){Init(4,15,1995);}Tdate(intd){Init(4,d,1996);}Tdate(intm,intd){Init(m,d,1997);}Tdate(intm,intd,inty){Init(m,d,y);}protected: intmonth;intday;intyear; voidInit(intm,intd,inty) {month=m;day=d;year=y; cout<<month<<"/"<<day<<"/"<<year<<endl;}};voidmain(){Tdateaday;Tdatebday(10);Tdatecday(2,12);Tdatedday(1,2,1998);}8、#include<iostream.h>classAA{private: inti;staticintk;public: AA(){i=0;k++;cout<<"Constructor"<<endl;}Voiddisplay(){cout<<"i="<<i<<",k="<<k<<endl;}};intAA::k=0;voidmain(){AAa,b;a.display();b.display();}9、#include<iostream.h>voidmain(){inta=10;int&b=a;cout<<"a="<<a<<",b="<<b<<endl;b++;cout<<"a="<<a<<",b="<<b<<endl;}10、#include<iostream.h>classAA{inti;public: AA(){i=0;cout<<"i="<<i<<endl<<"Construvtor1"<<endl;} AA(intval){i=0;cout<<"i="<<i<<endl<<"Construvtor2"<<endl;}};voidmain(){AAa,b(10);}11、#include<iostream.h>classAA{inti;public:AA(){i=0;cout<<"i="<<i<<endl<<"Construvtor1"<<endl;} AA(intval){i=val;cout<<"i="<<i<<endl<<"Construvtor2"<<endl;} ~AA(){cout<<"Destructor"<<endl;}};voidmain(){AAa,b(10);}12、#include<iostream.h>classMyClass{public: MyClass(); MyClass(int); ~MyClass();voidDisplay();protected: intnumber;};MyClass::MyClass(){number=0;cout<<"Constructingnormally.\n";}MyClass::MyClass(intm):number(m){cout<<"Constructingwithanumber:"<<number<<endl;}voidMyClass::Display(){cout<<"Displayanumber:"<<number<<endl;}MyClass::~MyClass(){cout<<"Destructing.\n";}voidmain(){MyClassobj1;MyClassobj2(20);obj1.Display();obj2.Display();}13、#include<iostream.h>classAA{public: AA(){cout<<"constructor1"<<endl;} ~AA(){cout<<"destructor1"<<endl;}};classBB{public: BB(){cout<<"constructor2"<<endl;} ~BB(){cout<<"destructor2"<<endl;}private:AAa;};voidmain(){BBb;}14、#include<iostream.h>classAA{public: AA(){cout<<"constructorAA"<<endl;} ~AA(){cout<<"destructorAA"<<endl;}};classBB{public: BB(){cout<<"constructorBB"<<endl;} ~BB(){cout<<"destructorBB"<<endl;}private:AAa;};voidmain(){AAa;BBb;}15、#include<iostream.h>classAA{public: AA(inta){i=a;cout<<"constructor1"<<endl;cout<<i<<endl;} AA(inta,intb){i=a;j=b;cout<<"constructor2"<<endl;cout<<i<<','<<j<<endl;}~AA(){cout<<"destructor"<<endl;}private:inti;intj;};voidmain(){AAa[2]={AA(3),AA(4,5)};}16、#include<iostream.h>classAA{public: AA(inta){i=a;cout<<"constructor1"<<endl;cout<<i<<endl;} AA(inta,intb){i=a;j=b;cout<<"constructor2"<<endl;cout<<i<<','<<j<<endl;}~AA(){cout<<"destructor"<<endl;}private:inti;intj;};voidmain(){AA*p=newAA(2),*q=newAA(3,4);deletep;deleteq;}17、#include<iostream.h>classSample{inti;doubled;public: voidsetdata(intn){i=n;d=0;} voidsetdata(intn,doublex) {i=n;d=x;}voiddisp(){cout<<"i="<<i<<",d="<<d<<endl;}};voidmain(){Samples;s.setdata(10);s.disp();s.setdata(2,15.6);s.disp();}18、#include<iostream.h>classbase{public: base(){cout<<"constructingbaseclass"<<endl;} ~base(){cout<<"destructingbaseclass"<<endl;}}; classsubs:publicbase{public: subs(){cout<<"constructingsubclass"<<endl;} ~subs(){cout<<"destructingsubclass"<<endl;}};voidmain(){subss;}19、#include<iostream.h>classbase{intn;public: base(inta){cout<<"constructingbaseclass"<<endl; n=a; cout<<"n="<<n<<endl;} ~base(){cout<<"destructingbaseclass"<<endl;}}; classsubs:publicbase{basebobj;intm;public: subs(inta,intb,intc):base(a),bobj(c) {cout<<"constructingsubclass"<<endl; m=b; cout<<"m="<<m<<endl;} ~subs(){cout<<"destructingsubclass"<<endl;}};voidmain(){subss(1,2,3);}20、#include<iostream.h>classA{public:inta;};classB:virtualpublicA{public:intb;};classC:virtualpublicA{public:intc;};classD:publicB,publicC{public:intd;voidprint(){cout<<"a="<<a<<"\nb="<<b<<"\nc="<<c<<"\nd="<<d<<endl;}};voidmain(){Dd;d.a=1;d.b=3;d.c=5;d.d=7;d.print();}21、#include<iostream.h>classbase{intn;public: base(){}; base(inta){cout<<"constructingbaseclass"<<endl; n=a; cout<<"n="<<n<<endl;} ~base(){cout<<"destructingbaseclass"<<endl;}}; classsubs:publicbase{intm;public: subs(inta,intb):base(a) {cout<<"constructingsubclass"<<endl; m=b; cout<<"m="<<m<<endl;} ~subs(){cout<<"destructingsubclass"<<endl;}};voidmain(){subss(1,2);}22、#include<iostream.h>classA{inta;public:A(inti){a=i;cout<<"constructingclassA"<<endl;}voidprint(){cout<<a<<endl;}~A(){cout<<"destructingclassA"<<endl;}};classB1:publicA{intb1;public: B1(inti,intj):A(i) {b1=j;cout<<"constructingclassB1"<<endl;}voidprint(){A::print();cout<<b1<<endl;}~B1(){cout<<"destructingclassB1"<<endl;}};classB2:publicA{intb2;public: B2(inti,intj):A(i) {b2=j;cout<<"constructingclassB2"<<endl;} voidprint() {A::print(); cout<<b2<<endl;} ~B2(){cout<<"destructingclassB2"<<endl;}};classC:publicB1,publicB2{intc;public: C(inti,intj,intk,intl,intm):B1(i,j),B2(k,l),c(m){cout<<"constructingclassC"<<endl;}voidprint(){B1::print();B2::print();cout<<c<<endl;}~C(){cout<<"destructingclassC"<<endl;}};voidmain(){Cc1(1,2,3,4,5);c1.print();}23、#include<iostream.h>classA{public:A(char*s){cout<<s<<endl;}~A(){}};classB:publicA{public:B(char*s1,char*s2):A(s1){cout<<s2<<endl;}};classC:publicA{public:C(char*s1,char*s2):A(s1){cout<<s2<<endl;}};classD:publicB,publicC{public:D(char*s1,char*s2,char*s3,char*s4):B(s1,s2),C(s1,s3){cout<<s4<<endl;}};voidmain(){Dd("classA","classB","classC","classD");}24、#include<iostream.h>classTadd{private:intx,y;public: Tadd(inta,intb){x=a;y=b;cout<<"constructor1"<<endl;} Tadd(Tadd&p){x=p.x;y=p.y;cout<<"constructor2"<<endl;}~Tadd(){cout<<"destructing"<<endl;}};voidmain(){Taddp1(2,3),p2=p1;}五:指出下列程序錯误并改正:修改本程序使得程序的输出成果為constructor!Thevalueis10#include<iostream>usingnamespacestd;classAA{ //ERROR**********found********** intvalue=10;public: //ERROR**********found********** voidAA(intval){value=val;cout<<"constructor!"<<endl;} //ERROR**********found**********voidGetValue(){returnvalue;}};intmain(){AAobj(10); //ERROR**********found**********cout<<"Thevalueis"<<value<<endl;return0;}本程序共有到处錯误,請改正#include<iostream>usingnamespacestd;classMyClass{public: //ERROR**********found********** voidMyClass(inti) {value=i;cout<<"Constructorcalled."<<endl;} intMax(intx,inty){returnx>y?x:y;} //ERROR**********found********** intMax(intx,inty,intz=0) {if(x>y)returnx>z?x:z; elsereturny>z?y:z;} intGetValue()const{returnvalue;} ~MyClass(){cout<<"Destructorcalled."<<endl;}private: //ERROR**********found**********intvalue=10;};intmain(){MyClassobj(10); //ERROR**********found**********cout<<"Thevalueis"<<value()<<endl;cout<<"Maxnumberis"<<obj.Max(10,20)<<endl;return0;}本程序共有到处錯误,請改正#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intlen){array=newint[len]; arraySize=len; for(inti=0;i<=arraySize;i++) array[i]=i+1;} ~MyClass(){ //ERROR**********found********** deletearray[];} voidPrint()const {for(inti=0;i<arraySize;i++) //ERROR**********found********** cin<<array[i]<<''; cout<<endl;}private: int*array; //ERROR**********found**********intarraySize=10;};intmain(){ //ERROR**********found**********MyClassobj;obj.Print();return0;}本程序共有到处錯误,請改正,使输出的成果為:Constructor2,3Destrucctor#include<iostream>usingnamespacestd;classCsample{public: //ERROR**********found********** Csample(inta:intb){x=a;y=b;cout<<"Constructor"<<endl;} //ERROR**********found********** void~Csample(){cout<<"Destructor"<<endl;} voiddisplay();private: intx;inty;}; //ERROR**********found**********voiddisplay(){cout<<x<<","<<y<<endl;}intmain(){Csamplecs(2,3) //ERROR**********found**********display();return0;}5、本程序共有到处錯误,請改正,使输出的成果為:Constructor2,3Destrucctor#include<iostream>usingnamespacestd;classAdd{public: //ERROR**********found**********voidAdd(inta,intb){x=a;y=b;cout<<"Constructor"<<endl;} ~Add(); //ERROR**********found********** voiddisplay(Add&);private: intx;inty;}; //ERROR**********found**********~Add(){cout<<"Destructor"<<endl;}voiddisplay(Add&add){cout<<add.x<<","<<add.y<<endl;} //ERROR**********found**********intMain(){Adda(2,3);display(a);return0;}六:编写程序:從建立的数据文献E:\\f1.txt中讀入10個整数放在数组中,找出并输出10個数中的最大者和它在数组中的序号。定义一种复数类Complex,数据组员為:实数部分(real),虚数部分(imag),均為double数据。组员函数包括构造函数,求复数相加的运算符重载函数(使之能用于复数的加法运算,参与运算的两個操作数可以都是类對象,也可以其中有一种是整数,次序任意),输出复数函数(display),编写程序,分别求两個复数之和,整数和复数之和,复数和整数之和,并将每次的成果输出。例如:已知三個复数C1=3+4i,C2=5-4i,C3=0;求C3=C1+C2,C3=5+C1,C3=C1+5。写一种程序,定义抽象类Shape,由它派生出3個类,Circle(圆类)、Rectangle(矩形类)、Triangle(三角形类),用一种函数printArea()分别输出以上3者的面积,3個图形的数据在定义對象時給定。定义一种矩形类Rectangle,数据组员為:長(width),高(high)為double数据,组员函数包括构造函数(初始化数据组员),求矩形面积函数(Area),打印矩形面积函数(Display),主函数中规定创立一种長10,宽5的對象a1,并将a1的面积输出。定义一种學生类(Student),数据组员為:姓名(pname)為char型数据(占10個字节空间);語文(yw),数學(sx),平均成绩(averager)為double数据。组员函数包括:构造函数实現创立對象(初始化组员,不包括平均成绩),求平均成绩(語文,数學)的函数(Averager),输出数据组员的函数(Display)。编程实現如下功能:创立一种姓名為TOM,語文為80.5,数學為90.5的對象,调用组员求出平均成绩,并将學生的信息输出。设计一种圆类circle和一种桌子类table,另设计一种圆桌类roundtable,它是從前两個类派生的,规定输出一种圆桌的高度、面积和颜色等数据。定义一种复数类Complex,数据组员為:实数部分(real0,虚数部分(imag),均為double数据。重载流上输入“<<”和流提取“>>”可以实現复数类的输入输出。编程題4、#include<iostream>usingnamespacestd;classRectangle{public:Rectangle(double,double);doubleArea();voiddisplay();private: doublewidth; doublehigh;};Rectangle::Rectangle(doublew,doubleh):width(w),high(h){}doubleR

温馨提示

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

最新文档

评论

0/150

提交评论