您好,欢迎访问三七文档
第1页(共5页)1.在(C)情况下适宜采用inline定义内联函数。A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用2.下列说法中,正确的说法是(B)A.所有的运算符都能被重载B.运算符被重载时,它们的优先级与结合性不会改变C.当需要时,我们可以自定义一个运算符来进行重载D.每个运算符都可以被重载成成员函数和友元函数3.如果类A被说明成类B的友元,则(D)A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元4.下列对派生类的描述中,(C)是错误的。A.一个派生类可以作为另一个派生类的基类B.派生类至少应有一个基类C.基类中成员访问权限继承到派生类中都保持不变D.派生类的成员除了自已定义的成员外,还包含了它的基类成员5.若有以下定义,则释放指针所指内存空间的操作是(C)。float*r=newsfloat[10];A.deleter;B.delete*r;C.delete[]r;D.deleter[];6.在用关键字class定义的类中,以下叙述正确的是(A)。A.在类中,不作特别说明的数据成员均为私有类型B.在类中,不作特别说明的数据成员均为公有类型C.类成员的定义必须是成员变量定义在前,成员函数定义在后D.类的成员定义必须放在类定义体内部7.假定MyClass为一个类,则执行MyClassa,b(2),*p;语句时,自动调用该类构造函数(2)次。A.2B.3C.4D.58.若已知charstr[20];有语句cinstr;当输入为:Thisisaprogram,所得的结果是str=(B)。A.ThisisaprogramB.ThisC.ThisisD.Thisisa9下面对静态局部变量的叙述中正确的是B。A使静态局部变量全局化B使用静态局部变量可以保留上一次调用对该变量所赋的值C函数递归调用必须通过静态局部变量来实现D使用静态局部变量以实现多态性10下面有关重载函数的说法中正确的是C。A重载函数必须具有不同的返回值类型;B重载函数形参个数必须不同;C重载函数必须有不同的形参列表D重载函数名可以不同;11.下列关于构造函数的描述中,错误的是D。A构造函数可以设置默认参数;B构造函数在定义对象时自动执行C构造函数可以是内联函数;D构造函数不可以重载第2页(共5页)12.下面描述中,表达错误的是B。A公有继承时基类中的public成员在派生类中仍是public的B私有继承时基类中的private成员在派生类中仍是private的C公有继承时基类中的protected成员在派生类中仍是protected的D私有继承时基类中的public成员在派生类中是private的13.以下关于函数指针的叙述中,正确的是A。A函数指针用来存放函数名(函数入口地址)B函数指针用来存放函数调用的结果C函数指针用来指示函数的出口D函数指针就是指针函数的别名14下列运算符中,____A___运算符在C++中不能被重载。A.?:B.newC.::D.&&1.运算符_____•___与类的对象一起使用或运算符____→____与指向类的对象的指针一起使用可以访问类的成员。2.类的____私有____成员可以被该类的成员函数或友元访问。3.类成员的默认访问模式是_私有成员_______。4.关键字__const______指定了不可修改的对象或变量。5类的构造函数是类的特殊的成员函数,其作用是初始化,构造函数由类的对象自动调用,一个类有多个构造函数。6.外部函数应声明成类的友元,才能访问类的类的私有成员。7.成员函数是类的功能的实现,一个类可以包含多个成员函数。这些函数可以由类的所有对象所共享。8.关键字__operator______引出了重载运算符函数的定义。重载不能改变运算符的_优先级_______和_结合性_______。三种成员访问说明符分别是_public_______、_private_______和__protect______。当用公有继承从基类派生一个类时,基类的公有成员成为派生类的_公有_______成员,受保护成员成为派生的__私有成员______成员。流提取运算符是________。成员函数是类的的实现,一个类可以包含个成员函数。这些函数可以由类的所有所共享。1.写出程序的运行结果:#includeiostream.hclassX{friendclassY;public:voidSet(inti){x=i;}voidDisplay(){coutx=x,y=yendl;}private:intx;staticinty;};classY{public:Y(inti,intj);voidDisplay();private:Xa;};intX::y=1;Y::Y(inti,intj){a.x=i;a.y=j;}第3页(共5页)voidY::Display(){coutx=a.x,y=X::yendl;}voidmain(){Xb;b.Set(8);cout(1);b.Display();Yc(7,7);cout(2);c.Display();cout(3);b.Display();}Key123写出程序的运行结果:#includeiostream.hclassrect{private:doublel,s;public:rect(){};rect(doublea,doubleb){l=a;s=b;}doubleshowlength(){return(l+s)*2;}doublearea(){returnl*s;}recttlength(rectr2){recttemp;temp.l=l+r2.l;temp.s=s+r2.s;returntemp;}};voidmain(){rectra(1,2),rb(3,4);coutra:len=ra.showlength()endl;coutra:area=ra.area()endl;coutrb:len=rb.showlength()endl;coutrb:area=rb.area()endl;rectrc=ra.tlength(rb);coutrc:len=rc.showlength()endl;}Keyra:len7ra:area9rb:len3rb:area4rc:len1写出下面程序的运行结果。#includeiostream.hclassMyClass{public:MyClass();MyClass(charcharacter);voidPrint();~MyClass();private:charch;};MyClass::MyClass(){cout”Thisisaconstructor!”endl;ch=’a’;}MyClass::MyClass(charcharacter){第4页(共5页)cout”Thisisaconstructor!”endl;ch=character;}voidMyClass::Print(){cout”Thevalueofchis”chendl;}MyClass::~Myclass(){cout”Thisisadestructor!”endl;}voidmain(){MyClassfirst,second(‘b’);first.Print();second.Print();}KeyThisisaconstructor!Thevalueofchisa!Thevalueofchisb!Thisisadestructor!写出程序的运行结果:#includeiostreamusingnamespacestd;classPerson{char*name;charsex;public:Person(char*pN=noName,chars=''){coutConstructingpNendl;name=newchar[strlen(pN)+1];if(name)strcpy(name,pN);sex=s;}Person(constPerson&s){coutCopyConstructings.nameendl;name=newchar[strlen(s.name)+1];if(name)strcpy(name,s.name);sex=s.sex;}~Person(){coutDestructingnameendl;delete[]name;}};main(){Personp1(Linda,'F');Personp2(p1);}Key:ConstructingLindaCopyConstructingLindaDestructingLindaDestructingLinda写出程序的运行结果:#includeiostreamusingnamespacestd;classSp{intx;public:voidsetx(inti){x=i;}intputx(){returnx;}};voidmain(){Spa[3],*p;for(inti=0;i=2;i++)a[i].setx(i);第5页(共5页)p=a;for(;i0;i--)coutp++-putx();coutendl;}Key:012
本文标题:c++期末复习试题
链接地址:https://www.777doc.com/doc-4910657 .html