




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、案例分析(每题参考分值5分)L试写出Time类的类声明及成员函数的实现。要求在Time类中包含3个数据重量即时(hour).分(minute)和秒(second)。在类的成员函数中应包括存(用set开头)、取(用get开头)各个数据重量和完整时间的操作;按上下午各12小时或按24小时打印时间的函数;有默认值的构造函数等。默认值以0时0分0秒为准。3dI卡正确答案:classTimer(inth,m,s;public:Timer()(h=0;m=0;s=0;)voidSet(intijntjjntk)h=i;m=j;s=k;classTestpublic:voidSetDatal(intval){datal=val;}voidSetData2(doubleval){data2=val:}intGetDatal(){returndatal;}doubleGetData2(){returndata2;}private:intdatal;doubledata2;)试将此类声明改为类模板声明,使得数据成员datal和data2可以是任何类型。dI j正确答案:#include<iostream>usingnamespacestd;#include<stringtemplate<classTlzclassT2>classTest(public:voidSetDatal(Tlval){datal=val;}voidSetData2(T2val){data2=val;}T1GetDatal(){returndatal;}T2GetData2(){returndata2;}private:T1datal;T2data2;);intmain()(inta;doubleb;Test<intzdouble>t;t.SetDatal(2);a=t.GetDatal();cout<<a<<endl;t.SetData2(2.2);b=t.GetData2();cout<<b<<endl;stringc;Test<string/double>t2;t2.SetDatal("china");c=t2.GetDatal();cout<<c<<endl;t2.SetData2(2.2);b=t2.GetData2();cout<<b<<endl;)二、问答(每题参考分值5分)5、#include<iostream>usingnamespacestd;classTest{private:intnum;public:Test()(cout<<"Defaultconstructorisactive!"<<endl;num=0;}intGetNum(){returnnum;}~Test();};Test:>Test()(cout<<"Destructorisactive"<<endl;}intmain()(Testx[3];cout<<"Exitingmain:"<<endl;system("pause");return0;}正确答案:Defaultconstructorisactive!Defaultconstructorisactive!Defaultconstructorisactive!Exitingmain:DestructorisactiveDestructorisactiveDestructorisactive6、#include<iostream>#include<fstream>usingnamespacestd;intmain()(ifstreamin("myfile.txt");if(!in){cout<<"Can'topenmyfile."<<endl;return1;)charch;in.seekg(2zios::beg);if(in.get(ch))cout<<ch<<endl;in.seekg(ll/ios::cur);if(in.get(ch))cout<<ch<<endl;in.seekg(-14/ios::end);if(in.get(ch))cout<<ch<<endl;in.closeO;return0;)注:myfile.txt的文件内容为:voidexchange(int&a,int&b,int&c)3l产正确答案:IIn7、#include<iostream>usingnamespacestd;classMyClasspublic:MyClass(intx=0)(i=x;cout<<"Thisisaconstructor!i="<<i<<endl;)〜MyClass。(cout<<"Thisisadestructor!i="<<i<<endl;)voidSetValue(intval){i=val;cout<<"i="<<i<<endl;)intGetValQreturni;)private:inti;);intmain()(MyClass*p[3];inti;for(i=0;i<3;i++)(p[i]=newMyClass(i);p[i]->SetValue(p[i]->GetVal()*2);)for(i=0;i<3;i++)deletep[i];return0;正确答案:Thisisaconstructor!i=0i=0Thisisaconstructor!i=li=2Thisisaconstructor!i=2i=4Thisisadestructor!i=0Thisisadestructor!i=2Thisisadestructor!i=48、#include<iostream>usingnamespacestd;classBase(public:Base(chari){cout<<"Baseconstructor.-"<<i<<endl;});classDerivedl:virtualpublicBase(public:Derivedl(chari,charj):Base(i)(cout<<"Derivedlconstructor.-n<<j<<endl;));classDerived2:virtualpublicBase(public:Derived2(chari,charj):Base(i)(cout<<"Derived2constructor.-n<<j<<endl;));intGetH()const{returnh;}intGetMconst{returnm;}intGetsconst{returns;}2、定义一个复数类Complex,重载运算符“+”,使之能用于复数的加、减、乘、除。运算符重载作为Complex的类的成员函数,编程序,求两个复数的和,差,积,商。Uj正确答案:#include<iostream>usingnamespacestd;classComplex{public:Complex(){real=0;imag=0;}Complex(double「doublei){real=r;imag=i;}Complexoperator+(Complex&c2);Complexoperator-(Complex&c2);Complexoperator*(Complex&c2);public:MyDerived(chari,charjzchark,charlzcharm,charn,charx):Derived2(i,j),Derivedl(k#I),Base(m),d(n)(cout<<"MyDerivedconstructor.-n<<x<<endl;)private:Based;);intmain(){MyDerivedobj(7V,BJCJD丁E'JFJG');return0;)正确答案:Baseconstructor.-EDerivedlconstructor.--DDerived2constructor.--BBaseconstructor.—FMyDerivedconstructor.-G9、#include<iostream>usingnamespacestd;classA(public:A(){}virtualvoidfunc(){cout<<"DestructorA"<<endl;)~A(){func();});classB:publicApublic:B(){}voidfunc(){cout<<"DestructorB"<<endl;}〜B(){func();});intmain()(Bb;A&a=b;return0;正确答案:DestructorBDestructorA10s#include<iostream>usingnamespacestd;classTest(private:staticintval;inta;public:staticintfunc();staticvoidsfunc(Test&r);};intTest::val=20;intTest::func()(val+=val;returnval;}voidTest::sfunc(Test&r)(r.a=25;cout<<"Result3="<<r.a<<endl;}intmain()(cout<<"Resultl="<<Test::func()<<endl;Testa;cout<<"Result2="<<a.func()<<endl;Test::sfunc(a);3IdIaT正确答案:Resultl=40Result2=80Result3=25三、单选(每题参考分值2.5分)11、静态成员函数没有()。「A.返回值this指针指针参数返回类型错误:【B】12、下列不是构造函数的特征的是()。构造函数的函数名与类名相同构造函数可以重载构造函数必需指定类型说明构造函数可以设置缺省参数错误:【O13、关于C++与C语言关系的描述中,()是错误的。C语言是C++语言的一个子集C语言与C++语言是兼容的c.C++语言对c语言进行了一些改进D.C++语言和C语言都是面对对象的错误:【D】14、在main函数中可以用p.a的形式访问派生类对象p的基类成员a,其中a是()。私有继承的公有成员公有继承的私有成员公有继承的爱护成员公有继承的公有成员错误:【D】15、进行cout屏幕输出和cin键盘输入时,C++头文件中必需包括()文件。A.stdio.h..■B.iostream,hc.fstream,hD.stdlih错误:【B】16、已知:intm=10;下列表示引用的方法中,正确的是()。int&x=mint&y=10&zD.float错误:【A】17、下列语句中错误的是()。int*p=newint(10)int*p=newint[10]int*p=newintint*p=newint[40](0)错误:【D】18、对使用关键字new所开拓的动态存储空间,释放时必需使用()1A.freeB.createc.realseD.delete错误:【D】19、不能说明为虚函数的是()。析构函数构造函数C.Complexoperator/(Complex&c2);voiddisplayO;private:doublereal;doubleimag;);ComplexComplex::operator+(Complex&c2){Complexc;c.real=real+c2.real;c.imag=imag+c2.imag;returnc;}ComplexComplex::operator-(Complex&c2){Complexc;c.real=real-c2.real;c.imag=imag-c2Jmag;returnc;}类的成员函数D.以上都不对错误:【B】20、下列表示引用的方法中,()是正确的。已知:inta=1000;int&x二a;char&y;&z=1000;D.float&t=&a;错误:[A]21、将一组对象的共同特征抽象出来,从而形成的概念是()。A.数组类实例多态错误:⑻22、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为()。「A.MyClass(MyClassx)B.MyClass&(MyClassx)c.MyClass(MyClass&x)D.MyClass(MyClass*x)错误:【c】23、类的私有成员可在何处访问()通过子类的对象访问本类及子类的成员函数中通过该类对象访问本类的成员函数中错误:【D】24、有关析构函数的说法,不正确的是()。'A.析构函数有且仅有一个析构函数和构造函数一样可以有形参析构函数的功能是在系统释放对象之前作一些内存清理工作析构函数无任何函数类型错误:⑻25、已知inta,*pa=&a;,输出指针pa十进制的地址值的方法是()cout<<pa•cout<<*pacout<<&paD.cout<<long(&pa)错误:【D】26、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()constchar*p="ABCD”charconst*p="ABCD”c.char*constp="ABCD”D.constchar*constp="ABCD”错误:【D】27、假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是()。'A.clasederived::studentprivate{•••}B.clasederived::studentpublic{,•,}clasederived::privatestudent{,•,}clasederived::publicstudent{,,,}错误:【C】28、在下面有关静态成员函数的描述中,正确的是()orA.在静态成员函数中可以使用this指针在建立对象前,就可以为静态数据成员赋值静态成员函数在类外定义时,要用static前缀静态成员函数只能在类外定义错误:⑻29、假如表达式++i*k中的"++"和人’都是重载的友元运算符,若采纳运算符函数调用格式,则表达式还可以表示为()。operator*(i.operator++(),k)operator*(operator++(i),k)c.operator++().operator*(k)D.k.operator*(operator++(i))错误:⑻30、当一个类的某个函数被说明为virtual时该函数在该类的全部派生类中(1都是虚函数只有被重新说明时才是虚函数只有被重新说明为virtual时才是虚函数都不是虚函数错误:【A】31、调用一成员函数时,使用动态联编的状况是()CA.通过对象调用一虚函数通过指针或引用调用一虚函数通过对象调用一静态函数D.通过指针或引用调用一静态函数错误:【B】32、系统在调用重载函数时往往依据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。函数的返回值类型参数的类型函数名称参数个数错误:【A】33、()不是构造函数的特征。构造函数的函数名与类名相同;B.构造函数可以重载;C.构造函数可以设置缺省参数;D.构造函数必需指定类型说明。错误:【D】34、假如一个类至少有一个纯虚函数,那么就称该类为()。rA.抽象类派生类纯基类ComplexComplex::operator*(Complex&c2){Complexc;c.real=real*c2.real-imag*c2.imag;c.imag=imag*c2.real+real*c2.imag;returnc;}ComplexComplex::operator/(Complex&c2){Complexc;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2Jmag*c2.imag);c.imag=(imag*c2.real-real*c2Jmag)/(c2.real*c2.real+c2.imag*c2.imag);returnc;}voidComplex::display(){cout<<"("<<real<<,1,,,<<imag<<"i)"<<endl;}以上都不对错误:【A】35、可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是()。私有继承的公用成员公用继承的私有成员公用继承的爱护成员公用继承的公用成员错误:【D】36、在C++中,用于实现运行时多态性的是()。A.内联函数B.重载函数模板函数虚函数错误:【D】37、下列语句中,将函数intsum(intxjnty)正确重载的是()。floatsum(intx,inty);intsum(inta,intb);c.floatsum(floatx,floaty);D.doublesum(inty,intx);错误:【。38、下面说法中,正确的是()一个类只能定义一个构造函数,但可以定义多个析构函数一个类只能定义一个析构函数,但可以定义多个构造函数构造函数与析构函数同名,只要名字前加了一个求反符号(〜)构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不行以错误:【B】39、下面运算符中,不能被重载的运算符是()。「A.〈二B.c.?••*D.口错误:【。40、以下有关继承的叙述正确的是()。'A.构造函数和析构函数都能被继承派生类是基类的组合派生类对象除了能访问自己的成员以外,不能访问基类中的全部成员基类的公有成员肯定能被派生类的对象访问错误:【。41、已知X类,则当程序执行到语句:Xarray[3];时,调用了()次构造函数。1A.0123错误:①】42、下列关于C++函数的叙述中,正确的是()。每个函数至少要具有一个参数函数在被调用之前必需先声明C.每个函数都必需返回一个值D.函数不能自己调用自己错误:【B】43、将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是()不合法的运算符一元运算符无操作数的运算符二元运算符错误:【B】44、C++是()。A.面对对象的程序设计语言面对过程的程序设计语言既支持面对对象的程序设计又支持面对过程的程序设计的混合型语言非结构化的程序设计语言错误:【C】45、面对对象程序设计思想的主要特征中不包括()。封装性多态性继承性功能分解,逐步求精错误:【D】46、进行文件操作时需要包含头文件()「A.iostream,hB.stdio.hc.fstream,hD.stdlih错误:【c】47、假如派生类有对象成员,则说明对象时,构造函数的调用挨次是:()先基类,再对象成员,后派生类先对象成员,再基类,后派生类先基类,再派生类,后对象成员先对象成员,再派生类,后基类错误:【A】48、下列带缺省值参数的函数说明中,正确的说明是()。intFun(intx,inty=2,intz=3);intFun(intx=l,inty,intz=3);Fun(intx,inty=2,intz);D.intFun(intx=l,inty,intz=3);错误:【A】49、通常状况下,函数模板中的类型参数个数不能是()。0243错误:【A】50、在C++中使用流进行输入输出,其中用于屏幕输出的对象是:()A.cerrB.intmain(){Complex01(3,4),62(5,-10),c3;c3=cl+c2;cout<<"cl+c2=";c3.display();c3=cl-c2;cout<<ncl-c2=n;c3.display();c3=cl*c2;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年飞机模型测试试题及答案
- 2025年语文词汇训练试题及答案
- 西式面点初级复习测试附答案
- 化学检验工职业技能鉴定复习测试卷
- 工业机器人应用编程复习测试卷含答案
- 2025年口语测试试题类型及答案
- 2025年家庭主妇测试题及答案
- 2025年前台考试试题及答案
- 2025年农村经济管理试题及答案
- 2025年考中消防证的试题及答案
- XX市三级公立综合医院绩效考核指标评分细则
- 河道疏挖、清淤、填筑堤防工程施工方案
- 户政知识技能比武大练兵考试题库(完整版)
- 奶牛胚胎移植课件
- 押金收据条(通用版)
- 心脏胚胎发育
- 慢性肾衰竭(慢性肾脏病)诊疗指南(内容清晰)
- 500kV变电站工程主变基础及防火墙施工方案
- 美术课件:水印版画
- GJ型高频塑料热合机电路图
- 战略地图模版(共2页)
评论
0/150
提交评论