《C++习题与答案.docx》由会员分享,可在线阅读,更多相关《C++习题与答案.docx(16页珍藏版)》请在第壹文秘上搜索。
1、一、选择:1、关于对象概念的描述中,()是错误的。A.对象就是C语言中的结构变量:B.对象代表若正在创建的类的一个实体:C.对象是个属性和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的:2、卜列给字符数组进行初始化中,O是正确的。A. chars1.=,12345abcd:B.chars23=*xyz*:C.chars33三,a,x,y,;D.chars423=*xyz*,*mnp*!:3、对于int*pa5;的描述,()是正确的。MPa是一个指向数组的指针,所指向的数组是5个int型元素:B. Pa是一个指向某个数组中第5个元素的指针,该元素是ini型变量:C. pa5表示某
2、个数组的第5个元素的值:D. Pa是一个具有5个元素的指针数组,每个元素是一个int型指针:4、在intb3=1.,3,2),(4,5,6,0b22的值是()A.0:B.2:C.5:D.65、下列的各类函数中,()不是类的成员函数。A.构造函数;B.析构函数;C.友元函数;D.拷贝初始化构造函数;6、下述静态数据成员的特征中,)是错误的。A.说明静态数据成员时前边要加修饰符static;B.静态数据成员要在类体外进行初始化:C.引用静态数据成员时,要在静态数据成员名前加K类名和作用域运算符;D.铮态数据成员不是所有对象所共用的。7、()是析构函数的特征。A.一个类中只能定义一个析构函数;B.析
3、构函数与类名不同;C.析构函数的定义只能在类体内;D.析构函数可以有各个或多个参数。;8、已知:P是一个指向类A数据成员m的指针,A1.是类A的一个对象.如果要给In赋值为5,()是正确的。B.1.-p=5;D.*A1.p=5;A.1.p=5;C.1.*p=5;9、关于new运算符的下列描述中,()是错的。A.它可以用来动态创建对象和对象数组:B.使用它创建的对象或对象数组可以使用运兑符de1.ete删除:C.使用它创建对象时要调用构造函数:D.使用它创建对彖数组时必须指定初始值。10、派生类的对象对它的基类成员中()是可以访问的.A.公有继承的公有成员;B.公有继承的私仃成员:C.公有继承的
4、保护成员:D.私有继承的公有成员。二、填空题1、,入正整数num,按从小到大的次序输出所有的因子.inc1.udeWefineN40voidmain()(intnum,t,i,j.k,aN;coutnum;i=2:k=N-I;a0=1.J=0;aN-1.=numt=num:whi1.e(it)(if)t=num,i;a+j=i:if(it).;)for(i=0:i=j;i+)coutai,t:for(i-k;iN;i+)coutai,t:cout,n;)2、用1、2、3、4四个数组成四位数,箱出所有可能组成的四位数,并统计四位数的个数ftinc1.udovoidmin()inta,b,c1d,
5、sum=0,x:for(a=1.;)for(b-1.;)for(c=1.;)for(d=1.:;)x=u*+b*+c*10+d;cout,*x:SUm=+1;CoU1.Xnsuin=data=p2-count+;p1-next=.:de1.etep2:e1.se();)4、#inc1.udec1.asstest!private:intnum;f1.oatf1.;pub1.ic:testO;test(,):inige1.iniO(returnnum;f1.oatgetf1.oat()returnf1.;;test.:test()CoUt”默认初始化end1.;.=0:=0.0:test.:tes
6、t(n.f)COU初始化end1.;=11:=f:voidnain()testa;testb(2,5.5);三、读程序题,1、Pinc1.udeintfunc(int,int):voidmin()(externintx,y;coutfunc(x,y)ond1.:结果intx=15,y=-5:intfunc(inta,intb)(ints;s=a+b+x+y;returns:2.#inc1.udeintadd(intx=15,inty=10)结果:returnx+y:)voidmain()(inta=8:cou1.add(),t,;coutadd(八),t;coutadd(a,add(八)),t
7、;coutadd(a,add(a,add()n,:3、Uinc1.udevoidmain()(inta8=(10,20,30,40,50,60,70,80;结果:int*pi:pi=a0:pi+;cout*pi=,*pin;pi=at;cout*pi+=*;Pi=M0:;cout*(pi+)=*(pi+),n,;pi=a0;CoUt*+pi=*+pin,:pi=Aa0;cout*(*pi)+=*(*pi)+:pi=fta0j;cout*+*pi=*+*pi,n:)4、Uinc1.udeintnumber1;intfcset1.()returnnumber1;结果:intfcset2()stat
8、icintnumber2;returnnumber2;intAmax(int&m,ini&n)return(mn?m:n):!voidmain()set1()=5;coutset1.(),t,number1.,n;number1=7;coutset1.(),t,number1.,n,;set2()=6;inta=set2();coutan;intb=3,c=4;coutmax(b,c),n,;11ux(b,c)=2;coutb=*b,tc=*c*tmax(b,c)=*max(b,c),11,:max(b,c)=10;cout*b=*b*tc=*c*tmax(b,c)=*max(b,c),n,;
9、5、#inc1.udec1.assAprivate:inti;pub1.ic:A(inta)(i=a;couti=YiY”调用了构造函数八n”;、A()(CoUti=i调用了析构函数;;Aa(O);结果一voidmain()(Aa1.(10):Aa2=20:a2=50:COUtmain()函数结束!c1.assA(intx;staticinty;pub1.ic:A(intx1.,intx2)x=x1;y=y+x2;)staticvoidshow1.O:staticvoidshow2(Aa):HvoidA:show1.()cout*Y=,yend1.;voidA:show2(Aa)coutX*a
10、.x*t*Y*yend1.;intA:y=6;结果:voidmain()Aa1.(1.1.,22):a1.show1.():show2(a1.);Aa2(33,44):A:show1.();a2.show2(a2);)7、inc1.udec1.assAApub1.ic:(inti,intj)A=i;B=j:cout”Constrctorn*;)AA(AA&obj)Aobj.A+1.:B=obj.B2:cout*CopyConstructorn*;()cout*Des1.ruc1.orn*;)voidprint()cout*A=*A*,B=*BprintO;de1.etepa;8、#inc1.u
11、dec1.assCBase(pub1.ic:virtua1.voidf1.()cout调用函数CBase*tf1.O!*end1.;)virtua1.void2()cout调用函数CBase:f2()!end1.;voidf3()coui调用函数CBaSe:f3O!end1.;):c1.assCDerivedipub1.icCBasevoidf1.Ocout调用函数CDeriVed:f1O!end1.;)void3()cout调用函数CDeriVed:用0!*f1.();P-f20:P-f30:P=obj2:P-f1.();P-f20:I,-f3();四、编程JR1、定义一个学生的类:数据成员包括:姓名、学号、英语、数学、计算机三门成绩。成员函数包括:设置姓名、学号和三门课的成绩、输出数据、以及求平均成绩。2、编写一个函数,将参数P中元素做例次序。函数原型:f1.oatirror(f1.oa