版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
下列关于C++函数的说中,正确的是(C )内联函数就是定义在另一个函数体内部的函数)函数体的最后一条语句必须是return语句)调用一个函数之前,如果还没有定义这个函数,必须先其原型)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式 )为该类的无参构造函数A)voidMyClass();B)~MyClass(intn);C)MyClass();D)~MyClass();3.下列叙述中,错误的是(C A)派生类可以使用private派生 当一个类的某个函数被说明为virtual时,该函数在该类及其所有派生类中(A)都是虚函 B.只有被重新说明为vittual时才是虚函C.都不是虚函 D.上面都不正派生类的构造函数的成员初始化表中,不能包含( C )基类的构造函数 )派生类中子对象的初始化)基类中子对象的初始化 )派生类中一般数据成员的初始化下列是重载加法运算符的函数原型,其中错误的是 A)MyClassoperator+(double,double);B)MyClassoperator+(double,MyClass);C)MyClassoperator+(MyClass,double);D)MyClassoperator+(MyClass,MyClass);派生类中的成员不能直接基类中的(B)成员 如果在类MyClass的外面使用函数调用MyClass::f();则函数f()是类MyClass的 静态成员函 B.非静态成员函C.友元函 D.前面都不正由于常对象不能被更新,因此(AA)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数C)常对象的成员都是常成员D)通过下列对类的构造函数和析构函数描述正确的是 13.下面有关重载函数的说明中,( 下列有关类与对象的说法中 )是不正确的已知:Print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是( A)voidPrint()const; B)constvoidPrint();C)voidconstPrint( D)void假定Myclass为一个类,那么下列的函数说明中 )为该类的析构函数void~Myclass( B)~Myclass(intC)Myclass(); D)~Myclass()17.下面类的定义中有(C )处错误。classmyclass{inti=0;public:voidmyclass();~myclass(value);A) 说明虚函数的关键字是( A. B. C. D.cout是某个类的标准对象的,该类是( A. B. C. D.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定 A.public B.protected C.private A.const B.new C.delete D.temte A.私有数据成 B.公有数据成C.保护数据成 D.静态数据成静态成员函数没有( A.返回 B.this指 C.指针参 D.返回类解决多重继承中二义性问题的方法有 如果在类CTest的外面函数调用CTest:f();则函数f()是类CTest的 静态成员函 B.非静态成员函C.友元函 D.前面都不正类的析构函数的作用是( )一个类的友元函数或友元类可以该类的 )A)私有成 B)保护成 C)公有成 D)所有成下列关于成员函数特征的描述中,( )是错误的A)成员函数一定是内联函 B)成员函数可以重C)成员函数可以设置参数的默认 D)成员函数可以是静态下列函数中 C)不是类的成员函数A)构造函 B)析构函 C)友元函 D)拷贝构造函下列对派生类的描述中 )是错误的派生类的成员除了它自己的成员外,派生类中继承的基类成员的权限到派生类中保持不下列的描述中 )是错误的公有继承时基类中的public成员在派生类中仍是public公有继承时基类中的private成员在派生类中仍是private公有继承时基类中的protected成员在派生类中仍是protected私有继承时基类中的public成员在派生类中仍是private下列虚基类的中正确的是 )A)classvirtualB:public B)virtualclassB:publicC)classB:publicA D)classB:virtualpublic若类A和类Bclass{inti,public:A(intm,intn):i(m),j(n){}intGeti(){returni;}};classB:public{intpublic:B(intm,intn,intu):A(m,n),k(u){}voidMake(){k=i*j;}};int{Bb(1,2,return则上述定义中,( )是的表达式A) B)int C)return D)voidMake(若有以下程序#include<iostream>usingnamespacestd;classA{intA(){a=10;}classA1:public{A1(){a=a+1;}classA2:public{public:A2(){a=a+2;}};classB:publicA1,publicA2{public:B()voidPrint(){cout<<a<<endl;}};intmain(){Bobj;return0;}则程序运行后的输出结果为:A)A)产生语法错 B) C) 在下面的4个关键字中 )是用来说明虚函数的A)virtual A)重载函 B)析构函 C)构造函 D)虚函如果一个类至少有一个纯虚函数,那么该类称为 A)A)抽象 B)虚基 C)派生 D)以上都不cin是某个类的标准对象,该类是( A)ostream B)istream C)stdout D)stdin A)通过对象调用一虚函 B)通过指针 调用一虚函C)通过对象调用一静态函 D)通过指针 调用一静态函40.假定CTest为一个类,并且有一无默认值的有参构造函数和一无参构造函数,则执行“CTestobjTest;” A)有参构造函 B)无参构造函拷贝构造函 D)赋值重载函对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用(基类 类模板应使用关键字(tem 重载的关系运算符和逻辑运算符的返回类型应当是(bool或 在面向对象方法中,类的实例称为 对 )函数会被自动调用重载运算苻”-”的函数名为 )C++中类的用途有两种,一种是类的实例化,即生成类的对象,另一种是通过( 在下面程序的横线处填上正确的语句,#include<iostreamh>classBase{virtualvoidFun(){cout<<"Base::Fun"<<endl;}};classDerived:publicBase{public:voidFun(){cout<<"Derived::Fun"<<endl;}};intmain(){Basea,Derived;pb->Fun(//Funreturn9.编译时多态性可以用)使用new建立的动态对象在不用时必须用(delete)类的具体表现是通过创建 对 )来操作的假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类的构造函数的次数为 使用函数模板的方法是先说明函数模板,然后实例化成相应的(模板函 )进行调用执行拷贝构造函数用它所在类的 )作为参数。重载运算符“>>”的函数名为(operator 在用C++进行程序设计时,最好用 )代替malloc函数模板中紧随temte之后尖括号内的类型参数都要寇以保留(class或 编译时多态性可以用 重 )函数实现拷贝构造函数用它所在类的 对 )作为参数20.用关键字static修饰的类的成员称为)21.重载运算符“+”的函数名为设函数max是由函数模板实现的,并且max(3.5,5)和max(3,5)都是正确的函数调用,则此函数模 在C++中,函数重载与虚函数帮助实现了类的 多 )性由static修饰的数据成员为该类的所有对象(共 重载函数在参数类型或参数个数上不同,但(函数 )相同使用new建立的动态对象在不用时必须用 )释放所占用的空间 定义一个函数名为fun,返回值为int,没有参数的纯虚函数的是(intfun()=0;定义静态成员函数应使用关键字 在C++中,如果类的名称是CTest,则此类的构造函数名称为 在类的对象被创建时 构造函 )函数会被自动调用类中数据成员和成员函数的默认级别为 private或私 #include //usingnamespacestd; //使用标准命名空间stdclassTest //测试静态成员类{private:int //Test(intx //voidShowcout"aaendl;}};//int //主函数 // //return0;} //0,返回操作系统#include //usingnamespacestd; //stdclassInteger//整数类{private:int //Integer(intx0ax // returna;}};//类型转换函数(将类类型转换为整型int //主函数{Integera //cout<<a //return0;}//0,返回操作系统参考答案:[2]operatorint#include //usingnamespacestd; //stdclassComplex//复数类double //double //Complex(doublereal0doubleimage0):realPart(real),imagePart(image){}//doubleGetRealPart()const{returnrealPart; //doubleGetImagePart()const{returnimagePart;}//Complexoperator+(constComplex&a) //重载加法运算符{return );}};//int //主函数{Complexa(12b(26 //ca //couta="a.GetRealPart()a.GetImagePart()"iendl;//显示acout"bb.GetRealPart()b.GetImagePart()"iendl;//显示bcoutc="c.GetRealPart()c.GetImagePart()"iendl;//显示creturn0;}//0,返回操作系统参考答案:[3]realPartarealPart,imageParta.imagePart或this->realParta.realPart,this->imagePart+a.imagePart#include //usingnamespacestd; //stdclassTest//测试静态成员类 int //Test(){count+ //构造函数,staticvoidShowcout共有count个对象endl;}};//intTest::count //int //主函数{Testobj1,obj2,obj3; //定义对象 //显示对象数return0;}//返回值0,返回操作系统#include //usingnamespacestd; //stdclassInteger//整数类int //Integer(intx0ax //operatorintreturna; //Integeroperator+(constInteger&i) //重载加法运算符 ;}};//int //主函数{Integera(2b(3), //ca //cout<<c //return0;}//0,返回操作系统参考答案:[5]a+i.a或this->a+i.a#include //usingnamespacestd; //stdtemte<classElemType>class //A(ElemTypex):a(x){ //voidShow()couta<<endl;}};//显示aint //主函数 >obj("o, //定义对 //return0; }//0,返回操作系统参考答案:[6]char*#include //usingnamespacestd; //stdclassAvirtualvoidShow(){cout<<"ClassA"<<endl;}};classB:publicAvoidShow(){cout<<"ClassB"<<endl;}};voidShow(constA&obj){obj.Show();}intmain(void){Aa;BShow(a);Show(b);A*p;p= p-p=&b; B*q;q= q-return0;}//0,返回操作系统ClassBClassBClass#include //usingnamespacestd; //stdtemte<classElemType>voidShow(ElemTypea[],int{for(inti=0;i<n;{cout<<a[i]<<"";}}intmain(void){inta[]={1,6,Show(a,sizeof(a)/sizeof(int));Show(a,2);cout<<return0;}//0,返回操作系统1691#include //usingnamespacestd; //stdclassMyClassMyClass(){count++; count--;staticintGetCount(){returncount;}private:staticintcount;};intMyClass::count //int{MyClasscout<<MyClass::GetCount()<<endl;MyClassobj2;cout<<MyClass::GetCount()<<endl;MyClassobj3;cout<<obj1.GetCount()<<endl;MyClass*p=newMyClass;cout<<MyClass::GetCount()<<endl;deletep;cout<<MyClass::GetCount()<<endl;return0;}//0,返回操作系统上面程序的输出结果为:1234#include //usingnamespacestd; //stdclassAA(){cout<<"A()"<<endl;~A(){cout<<"~A()"<<endl;virtualvoidf(){cout<<"A:f()"<<endl;}};classB:publicAB(){cout<<"B()"<<endl;~B(){cout<<"~B()"<<endl;voidf(){cout<<"B::f()"<<endl;}};intmain(void){BA*p=&obj;return0;}//0,返回操作系统若有以下程序#include<iostreamh>classA{inta;A(intaa=0){a=aa;~A(){cout<<"DestructorA!"<<a<<endl;}};classB:publicA{intb;B(intaa=0,intbb=0):A(aa){b=bb;~B(){cout<<"DestructorB!"<<b<<endl;}};intmain(){Bx(5),returnDestructorB!DestructorA!DestructorB!DestructorA!若有以下程序#include<iostreamh>classPoint{intx,y;Point(){x=0;y=0;voidSetPoint(intx1,inty1){x=x1;y=y1;voidDisPoint(){cout<<"x="<<x<<","<<"y="<<y<<endl;}};intmain(){Point*p=newp->SetPoint(5,12);deletep;return若有以下程序#include<iostreamh>classSample{intn;Sample(inti){n=i;}voidAdd(){s+=n;}staticints;voidDis(){cout<<s<<endl;}};intSample::s=0;int{Samplea(2),b(5),Add(Add(Dis();return0;}若有以下程序#include<iostreamh>classBasevoidFun(){cout<<"1"<<endl;}};classDerived:publicBase{voidFun(){cout<<"2"<<endl;}};intmain(){Deriveda;Base*p;p-return0;}12若有以下程序#include<iostreamh>temte<classT1,classT2>voidFun(T1&x,T2&y){if(sizeof(T1)>sizeof(T2))x=(T1)y;elsey=(T2)x;}int{doubled;inti;d=i=cout<<"d="<<d<<"i="<<i<<endl;return0;}上面程序的输出结果为:#include<iostream>usingnamespacestd;classPoint{Point(intx=0,inty=0):m_x(x),m_y(y){}intGetX()const{returnm_x;}intGetY()const{returnm_y;}voidSetX(intx){m_x=x;}voidSetY(inty){m_y=y;}private:int Xintm_y Xint{PointconstPointoPoint2(3,cout<<oPoint1.GetX()<<endl;cout<<oPoint1.GetX()<<endl;cout<<oPoint1.GetY()<<endl;cout<<oPoint2.GetX()<<endl;cout<<oPoint2.GetY()<<endl;return0;}01234#include<iostreamh>classSample int voidDisy({cout<<"constructor"<<",";voidSample::Disy(){cout<<"i="<<i<<",";}Sample::~Sample(){cout<<"destructor"<<endl;}intmain(){Samplea;return0;}usingnamespacestd;classA{inta,b;A(){a=b=0;A(intaa,int{a=aa;b=bb;cout<<a<<''<<b<<int{Ax,return上面程序的输出结果为:2若有以下程序#include<iostreamh>classA{inta;A(intaa=0{a=cout<<"A():"<<a<<endl;}};classB:publicA{intb;B(intaa=0,intbb=0):{b=cout<<"B():"<<b<<endl;}int{Bx(5),returnA():B():A():B():若有以下程序#include<iostreamh>classPoint{intx,y;Point(intm=0,intn=0){x=m;y=n;voidShow(){cout<<"x="<<x<<","<<"y="<<y<<endl;}};intmain(){Point*p=newPoint(1,deletep;return0;} #include<iostreamh>classSample{intn;Sample(inti){n=i;s+=n;}staticints;voidShow(){cout<<s<<endl;}};intSample::s=0;int{Samplea(2),b(5),c(8);return输出结果为:15#include<iostreamh>classSample{intn;Sample(inti){n=i;voidPrint(){cout<<"1n="<<n<<",";voidPrint()const{cout<<"2:n="<<n<<endl;}};intmain(){Samplea(10);constSampleb(20);return#include<iostreamh>classTest{intx;voidSetx(inti){x=i;}intPutx(){returnx;}int{Test*p;Testa[3];for(intj=0;j<3;{p=cout<<p->Putx()<<",";}cout<<endl;return#include<iostreamh>classBaseBase(intx){a=x;voidShow(){cout<<a<<endl;}private:inta;};classDerived:publicDerived(inti):Base(i+1),b(i){}voidShow(){cout<<b<<endl;private:intb;};intmain(){Baseb(5),Derivedd(1);pb=&d;return0;}若有以下程序#include<iostreamh>classBasevoidFun(){cout<<"1"<<endl;}};classDerived:publicBasevoidFun(){cout<<"2"<<endl;}};intmain(){DerivedBase*p;p=&a;return0;}12#include<iostreamh>temte<typenameTT>classFF{TTFF(TTb1,TTb2,TTb3){a1=b1;a2=b2;a3=b3;TTSum(){returna1+a2+a3;}};intmain(){FF<int>x(2,3,4),y(5,7,cout<<x.Sum()<<''<<y.Sum()<<endl;return0;}下面程序中类的定义中有一处错误,请出错的行,说明错误原因,并加以改正#include //预处理命 usingnamespace //使用标准命名空间 class voidTest(){cout<<"构造函数"<<endl; ~Test(){cout<<"析造函数"<<endl; int return //返回值0,返回操作系 7行“voidTest(){cout构造函数endl;”有错,构造函数没有返回值类型,应改为,应改为“Test(){cout<<"构造函数"<<endl;}下面程序中有错误,请出错的行,说明错误原因,并加以改正#include usingnamespace class MyClass(intx=0): void cout<<a<<endl; int int constMyClass return 第9行,第18行与第19行有错,常对象只能调用常成员函数,可将第18行的“constMyClassoTest(18);”改为“MyClassoTest(18);”;或将第9行的“voidShow()”改为“voidShow() 下面程序中类的定义中有一处错误,请出错的行,说明错误原因,并加以改正#include usingnamespace class virtualvoidShow()= classB:public B(inta=0):x(a){ void cout<<x<< int int A return 下面程序中类的定义中有一处错误,请出错的行,说明错误原因,并加以改正#include usingnamespace class A(inti=0,intj):mi(i),mj(j) voidShow() {cout<<mi<<''<<mj<<endl;} intmi, int A return 参考答案:7A(inti,intj=0):mi(i),mj(j){或改 A(inti=0,intj=0):mi(i),mj(j){下面程序中类的定义中有一处错误,请出错的行,说明错误原因,并加以改正#include usingnamespace class A(inta):m_a= void {cout<<m_a<<endl; int int A return 参考答案:第7行,改为A(inta):m_a(a){}6.下面程序中类的定义中有一处错误,请出错的行,说明错误原因,并加以改正。#include usingnamespace class Test(intiVar=0) {cout<<"构造函数:"<<m_iArr<<endl; void {cout<<"析造函数:"<<m_iArr<<endl; int int Testobj1, cout<< return }参考答案:9行,析构函数无返回值类型(void类型也不行),应改为7.要求用下面的程序实现动态多态性,但程序有错,请错误并改正之#include usingnamespace class voidf(){cout<<"AA"; classCC:public virtualvoidf(){cout<<"CC"; int AAaa, CC p= p. return 7f()virtualvirtualvoidf(){cout<<"AA";21p.f();应改当p-六、编程题(26(正方形)ShowArea()分别显示各种图形的面积,最后还要显示所有图形的总面积。#include//usingnamespace//constdoublePI=;//classShape //virtual~Shape() //virtualShowArea() //staticdouble //staticvoidShowTotalArea()cout总面积totalAreaendl;classCircle:publicShapedouble //Circle(doubler):radius(r)totalAreaPI*r*r; //~Circle() //virtualShowArea()cout圆面积PI*radius*radiusendl;};};//classRectangle:publicdouble //double //Rectangle(doubleldoublew)length(l),width(wtotalAreal*w;}//~Rectangle() //virtualShowArea()cout矩形面积length*widthendl;};};//classSquare:publicdouble //Square(doublellength(l){totalAreal*l; //~Square() //virtualShowArea()cout正方形面积length*lengthendl;};};//doubleShape::totalArea=0; //初始化totalAreaintmain(void){Circle // //Rectangler(1, // //Square // // //return0;} //0,要求有一个无参的构造函数,其初始的年、月、日分别为:2010,6,8#include<iostream>usingnamespacestd;classDateInfo{private:intyear,month,public:DateInfo():year(2010),month(6),day(8){}DateInfo(inty,intm,intd):year(y),month(m),
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应设未设四个字的法律后果-从条文到执法案例
- 智慧教育平台课程教师管理规范
- 2026年新增服务项目介绍信4篇范本
- 智能健身房会员管理运营手册
- 保密宣传教育月活动总结(一)
- 产品更换原因解释函(3篇范文)
- 食品行业研发岗位食品安全标准遵守绩效考核表
- 高处跌落急救培训课件
- 工程担保风控课件
- 肛肠出血护理课件
- 2026消防宣传月培训课件(含火灾案例)
- 箱涵工程施工及验收标准
- GB 48147.1-2026矿山隐蔽致灾因素普查规范第1部分:总则
- 2026年乌鲁木齐辅警面试真题附答案完整答案
- 35kv集电线路运行规程
- 2026春鲁科版二年级劳动技术全一册每课教案附目录
- 三年(2021-2023)中考数学真题分项汇编(江苏专用)专题23几何压轴题(原卷版+解析)
- 新生儿十二指肠狭窄课件
- GB/T 26202-2023纸管纸板
- YD 5102-2010 通信线路工程设计规范
- 新里程大学英语听说教程谭思坦课后部分参考答案
评论
0/150
提交评论