《C 练习题3.docx》由会员分享,可在线阅读,更多相关《C 练习题3.docx(12页珍藏版)》请在第壹文秘上搜索。
1、一、单工选择1 .下列字符串中,不可以作为CH标识符的是(D).A) ReturnB)scoreC)_0_D)OName2.下面有关类的说怯中不正确的是(C)A)不可以在类的声明中给数据成员赋初值B) 一个类可定义多个构造函数O析构函数可以有一个或多个参数D)在一个类中可以用另一个类的对象作为数据成员3.下列代码的输出结果为(八).inta=2,b=4,c=6;iRab)a=b;c=a;i11c!=a)c=b;COUtabcendl;)2,4,2B)2,4,4C) 2.4.6D)程序中有语法错误4.在intb3=l,32.456,0*3bll的值为(八)。A)2B)3C)1D)05 .派生类仃
2、三种继承基类的方式,三种继承方式的共同特点是(八)oA)基类的私有成员在派生类中不可直接访问B)基类的私有成员在派生类中仍然是私有成员O基类的公有成员在派牛类中仍然是公有成员D)基类的保护成员在派生类中仍然是保护成员6 .设X,y和Z都是it11型变量:,且x=3,y=6.z=4,则下面表达式的值为。的是(D)A)x&yB)x=yC)XHy+z&y-zD)!(xy)&!z1)7 .卜面程序段运行后的输出结果是(C).intx=5;iRx-5)coutx;elsecoutvv+x;A)3B)4C)5D)68.F列do-whilc循环的次数是(B)intX=-1;do(X=xx;)vhile(!x
3、);A)无限次B)I次C)2次D)O次9.下面程序段的输出结果是(B)charc5=fa,V.W,0,c;COlltC;A)abB)abOabbD)abc10.下面程序的输出结果是(B)intn=24680,d;while(n!=0)d=n%10;n/=10;coutd;A)24680B)08642C)864211.执行下面程序,输出结果为(B)#includeusingnamespacesld;voidmain()inti=2J=3;couti,;i+=2*j;inti=0;i+;couti,j,;couti,jendl;A)2.13.1.3B)2.1.3.8.3C)29393D)2D)变量
4、i重复定义错误12.下面程序的输出结果为.A)#includeusingnamespacesld;voidmain()intx=l,a=O,b=O;switch(x)caseO:b+:easel:a+;ease2ra+.b+;couta=a,b=b;)A)a=2.b=IB)a=l.b=lC)a=I.b=0D)a=2,b=213 .有如卜定义:charx=abcdefg;Charyn=HbC,dWg;关于x、y两个数组的正确描述为(C)。A)数组X的字节数小数组y的字节数:B)数组X的字节数和数组y的字节数相同:O数组X的字节数大于数组y的字节数:D)数组X和数组y完全等价。14 .己知一个函数
5、的原型是:intfun(intx,doubley=0.();则下列函数中可以对fun进行函数重载的是(D)A)intfun(intx);B)floatftn(inty);C)floatfun(inty.doublex);D)intftn(intx,inty);15 .执行下列代码后,屏幕输出显示为(八)#includcusingnamespacestd:classCBasc(public:CBasc()coutCBasc():ConstrctorCnd1;CBasc()comCBasc():DestrctorCnd1;;classCDerivc:publicCBascpublic:CDeriV
6、eocoulCDerive():Constructorendl;-CDerive()coutCDerive():Destniciorendl;;voidmain()CDeriveobj;A) CBase():ConstructorCDerive():ConstructorCDerive():DestructorCBasc():DcstructorB) CDcrive():ConstructorCBase():ConstructorCBase():DestructorCDerive():DestructorD)CBasc():ConstructorCDcrivc():ConstructorCBa
7、SC0:DcstnictorCDcrivc():DestnictorC) CDerive():ConstructorCBase():ConstructorCDcrivc():DcstnictorCBasc():Dcstructor16 .下面选项中数组定义等价的是(D)A)inta23=3.4,5);与inta3=3.4,5;B) inta23=0,l;与inta23=0,l;C) inta(23=1.0,2,2A5;与inta2=1,0,2,2,4.5;D) inta3=1,02,2.4.5;与inta23=1.0,224,5;17.在C+程序中,对象之间的相互通信,是通过(B)来实现的。)
8、维承B)调用成员函数O封装D)函数重载二、填空Jl(每空1分,共14分)1 .假定个类的构造函数为A(intx=l,inty=9)a=x;b=a*y;,则执行Ax(7);语句后,x.a=7x.b=63.2 .以下以下输出结果是_5.9。#includeusingnamespacestd;voidmain()inti=0.sum=0;fbr(i=ki=5)break;coutisumcndl;3 .以下程序输出结果是:13。#inchidcusingnamespacestd;voidmain()charch7=123ab!;inti.s=O;Mi=O:chi=O&chfi=,9,;i+=2)s=
9、10*s+chi-0;coutscndl;4 .在已经定义了浮点型指针Pt后,为了得到一个包括100个浮点数的动态存储空间,并由Pt所指向,的使用语句,float*pt=newfloat1001:撤销该空间应该用语句deletem:.5 .如果期望某个变量的值在程序运行期间不能改变,则在定义该变量时,可以加上关键字I2DSi,这种变量成为常变量。6 .执行如下程序,输出结果为20。includeusingnamespacesld;voidmain()inta=3,b=2,c=l;intd,e;d=abc;e=d?10:20;couteendl;7 .设m、n为整型变量,X为浮点型变量,其中m=
10、7,n=3,x=2.4,则.算术表达式m%4(floatmn)+x的值为7.48 .执行如下程序,输出结果为3。includcusingnamespacestd;voidmain()inti=0j=0;if(i0)if(j=O)CoUtVVI;dsccout2;cout3endl;9 .已知Charstr=Trogramming则执行语句coutStrl5:会输出a.coutstr+5:会输出ammine。10 .运行如卜程序,屏齐输出为:15。#includeusingnamespacesld;ntadd(intx=0,inty=2,intz=4)returnx+y+z;voidmain()
11、ints=add(1)+add(O,l)+add(0,l,2);couts;H.运行如F程序,屏幕输出为x=l%=79。includeVioStream)usingnamespacestd;voidmain()inta5=66,48,19,79,47;intx=aO,y=aO;for(inti=0;iai)x=a(i;if(yai)y=ai;coutx=x;couty=rcndl;)三.程中改WH1(每修改一个”3分,其中找到借误1分,修改正确2分,共18分)每题有2个错误,谙在程序中修改,不得增添或删减行1.下面是一个根据输入圆的半径进行面积计算并输出的程序.#includeusingnam
12、espacesld:McfincPl3.14159;intmain()doublerad;U圆的半径doubleS;H圆的面积coutTlcascinputtheradius:,;cinrad;if(rad=O)S=0.0;elseS=Pl*rad*rad;计算面积cout,Theareais:VVS;return0;第处错误:definePl3.14159:修改为:#de,nePl3.14159笫二处错误:if(rad=O)修改为:if(rad=O)2.下面程序计算上20之间所有奇数的和,函数addi堂每次调用时实参的累加和并返回累加结果,采用指针p访问变量Sum并输出显示。includeu
13、singnamespacestd;mtadd(intn)计算参数的累加和staticintsum;sum=O;sum+=n;coutsum-,sumendl;returnsum;voidmain()intSum.*p,i;fbr(i=l;i=20;i+=2)Sum=add(i);p=Sum;cout*pendl;第一处错误:StatiCintSUm:sum=。:修改为:StatiCintSUm=0:第二处错误:p=Sum;修改为:n=&Sum:3.创建一个CSquare类,调用构造函数和成员函数,根据边长计算正方形面积并输出.请改正程序中的2处错误。#includeusingnamespacestd;classCSquarcpublic: