C++题.docx
《C++题.docx》由会员分享,可在线阅读,更多相关《C++题.docx(16页珍藏版)》请在冰豆网上搜索。
![C++题.docx](https://file1.bdocx.com/fileroot1/2023-1/24/3c83ffda-6709-4fa8-8cbb-ac5dc1d7d8dd/3c83ffda-6709-4fa8-8cbb-ac5dc1d7d8dd1.gif)
C++题
PartI、Selection(totalpoints40,2pointsperquestion,tatolquestion20.)23278764
1.whichistheillegaldeclarationinC++?
(C)
A.intfat(intx=12,chary=‘a’,floatz=12.3);
B.intfat(intx,chary=‘a’,floatz=12.3);
C.intfat(intx=12,chary,floatz);
D.intfat(intx=12,chary=‘a’,float12.3);
2.WhenC++programmeruns,italwaysstartatthe(C).
A.thefirstsentenceofprogramme
B.thefirstsentenceafterpretreatment(预处理)
C.main( )
D.pretreatment
3.Howmanytimesisthefollowingloopperformed(执行)?
(A)
for(intm=0,n=5;m=n=5;m++,n++)
A.endlesscircleB.0C.5D.error
4.Whenoverloadingfunctioniscalled,whichofthefollowingconditionscannotbeusedasbasis?
(D)//函数重载只看名字和参数
A.parameter(参数)numberB.parametertype
C.functionnameD.functiontype
5.Iftherearethedefinition:
constintx=24;inty=10;whichistheincorrectusing?
(A)
A.int&r=x;B.int&r=y;C.int*p=&y;D.constint*p=&x;
6.Whichistheincorrectobjectdefinition?
(A)
classCss
{public:
Css(intx,inty=0){a=x;b=y;}
private:
inta,b;};
A.Cssc1;B.Cssc1(10);C.Css(30,50);D.Cssc1(10,70);
7.Therearethefollowingdefinition:
intx=100,y;
int*p1;
constint*p2=&x;
thenwhichofthefollowingifstatementsisincorrect?
(B)
A.p1=&x;B.p1=p2;
C.p2=p1;D.p2=&y;
8.IfAisanabstractclass,whichdeclarationiscorrectasfollow?
(B)
A.Af(int)B.A*pC.intf(Aa1)D.Aobj
一
二
三
四
五
六
七
八
九
总分
得分
9.Thereisthefunctiondeclaration:
voidfn(int&x);andthedefinition:
intm=20;thenthefollowingcallingiscorrect?
(C)
A.fn(10);B.fn(200+m);C.fn(m);D.fn(&m);
10.Thepointervariableisa:
B
A.valueB.addressC.nameD.logo
11.Wehaveaclassasfollow:
classBase
{public:
virtualvoidf1(){cout<<"classBasef1"<voidf2(){cout<<"classBasef2"<};
classDerived:
publicBase
{public:
voidf1()
{cout<<"classDerivedf1"<virtualvoidf2()
{cout<<"classDerivedf2"<};
Whichisthecorrectdescription?
()
A.BothBase:
:
f2()andDerived:
:
f1()arevirtualfunction
B.NeitherBase:
:
f2()norDerived:
:
f1()isvirtualfunction
C.Derived:
:
f1()isvirtualfunction,butBase:
:
f2()isn’tvirtualfunction
D.Derived:
:
f1()isn’tvirtualfunction,butBase:
:
f2()isvirtualfunction
12.Ifaclasshasatleastonepurevirtualfunction,wecalltheclassas?
()
A.abstractclassB.virtualbaseclassC.derivedclassD.noneisright
13.Aclass’sinstantiation(实例化)refersto()
A.definetheclassB.demonstrateaspecificclass
C.createobjectsoftheclassD.callmembersoftheclass
14.Inthefollowingfunctionprototypes(原型).whichonecanbetheconstructoroftheclassAA__
A.voidAA(int);B.intAA();C.AA(int)const;D.AA(int);
15.Staticmemberfunctionshaveno___
A.returnvalueB.thispointer
C.pointerparameterD.returntype
16.Whichisincorrectaboutdestructor?
(A)析构函数没有参数,也没有返回值,而且不能重载,因此在一个类中只能有一个析构函数;当撤消对象时,编译系统会自动地调用析构函数。
A.Thedestructorcanhavetheoverloadfunction.
B.Thedestructoriscalledautomaticallywhenanobjectisreleased.
C.Thedestructorhasnotanyfunctiontype.
D.Theonlyonedestructorcanexistinaclass.
17.GiventhatclassAisafriendclassofclassBandclassBisafriendclassofclassC,then____
A.classAmustbeafriendclassofclassC;
B.classCmustbeafriendclassofclassA;
C.thememberfunctionsofclassCcanvisitanymembersofclassB’sobjects;
D.thememberfunctionsofclassAcanvisitanymembersofclassB’sobjects.
18.Whichisthecorrectdeclarationofthepurevirtualfunction(B)
A.intfpure(intx)=0;B.virtualintfpure(intx)=0;
C.vitualintfpure(intx=0);D.virtualintfpure(intx=0){}
19.Therearethefollowingdefinitionofclass:
classCA{intx;};
classCB:
publicCA
{inty;};
CA*pa,a;
CB*pb,b;
whichusingisincorrect?
()
A.pa=&a;B.pa=&b;C.b=a;D.a=b;
20.Whichisincorrectaboutfriend?
()
A.cannotbeinheritedB.relationbetweenclasses
C.isbidirectionalrelationD.toimprovetheefficiencyofprogram
PartIIPleasereadtheprogramandgivetheresult.(totalquestions:
10,totalpoints:
40.)
1.#include"iostream.h"
intfun(inta);
voidmain()
{ints=0;
intnum;
num=4;
for(inti=1;i<=num;i++)s+=fun(i);
cout<<"s="<
}
intfun(inta)
{staticintb=1;
b*=a;
returnb;
}
2.#include
usingnamespacestd;
voidshift1(int&a,int&b)
{inttemp;
temp=a;a=b;b=temp;}
voidshift2(inta,intb)
{inttemp;
temp=a;a=b;b=temp;}
voidmain()
{intx=12,y=36;
shift2(x,y);
cout<<"x="<shift1(x,y);
cout<<"x="<}
3.#include
usingnamespacestd;
classA
{intx,y;
public:
A(inta=0,intb=0){x=a;y=b;}
voidPrint(void){cout<};
voidmain()
{Aa1,a2(5),a3(8,9);
a1.Print();
a2.Print();
a3.Print();
}
4.#include
intfun(intx,inty)
{returnx*y;}
voidmain()
{intk=5;
cout<}
5.#include
usingnamespacestd;
classA
{public:
intx,y;
staticintcount;
A()
{x=0;y=0;
count++;}
A(intx0,inty0)
{x=x0;y=y0;
count++;}
staticvoidstaFun()
{cout<};
intA:
:
count=0;
共6页第2页
voidmain()
{Aobj(2,4),*p;
cout<:
count<<",";
Aa[5];
obj.staFun();
p=newA(6,9);
cout<count<<",";
A&rA=obj;
A:
:
staFun();
deletep;
}
6.#include
usingnamespacestd;
template
classTAdd
{Tx,y;
public:
TAdd(Ta,Tb):
x(a),y(b){cout<<”tem_constructor”<intadd(){returnx+y;}
};
intmain()
{TAddt1(20,30);
cout<}
7.#include
usingnamespacestd;
classRatio
{intnum,den;
public:
Ratio(intn=0,intd=1)
{num=n;den=d;
cout<<“con”<Ratio(Ratio&r)
{num=r.num;
den=r.den;
cout<<“Copycon”<};
voidfn(Ratio&r1)
{cout<<"fncalled"<voidmain()
{cout<<“Rxis:
”;
Ratiox(40,9);
cout<<“Ryis:
”;
Ratioy(x);
fn(x);
}
8.#include
usingnamespacestd;
classBase
{public:
virtualvoidf(){cout<<"Base_f";}
};
classDer:
publicBase
{public:
Der(){}
voidf(){cout<<"Der_f";}
};
classBD:
publicDer
{public:
virtualvoidf()
{Der:
:
f();
cout<<"BD_f";}
};
voidmain()
{Baseb1,*p;
p=&b1;
b1.f();
p->f();
cout<Derd1;
p=&d1;
d1.Base:
:
f();
p->f();
cout<BDc1;
p=&c1;
p->f();
cout<}
9.#include
usingnamespacestd;
classfath
{public:
voidfun()
{cout<<"fathfun"<voidfun(intx=0)
{cout<<"fathfun"<};
classchil:
publicfath
{public:
voidfun(intx=25)
{cout<<"chilfun"<};
共6页第3页
intmain()
{fath*pf,f1;
chilc1;
pf=&c1;
c1.fun();
pf->fun(100);
return0;
}
10.#include
usingnamespacestd;
classbase
{intn;
public:
base(inta):
n(a)
{cout<<"base";
cout<<"n="<~base()
{cout<<"des_base";}
};
classsubs:
publicbase
{basebobj;
intm;
public:
subs(inta,intb,intc):
base(a),bobj(c),m(b)
{cout<<"subs";
cout<<"m="<}
~subs()
{cout<<"des_sub";}
};
voidmain()
{subss(1,2,3);}
PartⅢ、Clozetheprogram.(totalquestions:
4,totalblank:
10,totalpoints:
20)Fillinpropercontentontheemptylineoffollowingprogram,tnentheprogramcansatisfyrequire.
1.Theoutputresultoffollowingprogramis‘0,6,6’.(4points)
#include
usingnamespacestd;
classBase
{public:
(1)f(){return0;}
};
classDerived:
publicBase
{public:
inti,j,k;
voidset(intii,intjj,intkk){i=ii;j=jj;k=kk;}
intf(){returni+j+k;}
};
voidmain()
{Baseb;
Derivedd;
cout<d.set(1,2,3);
cout<Base*p;
(2);
cout<f()<}
2.Thefollowingprogramdefinesonedimensionarrayclassandfinishtwoarraystoaddandminusoperator.(6points)
#include
usingstd:
:
cout;
usingstd:
:
endl;
classArray
{intarr[10];
public:
Array(inta[])
{for(inti=0;i<=9;i++)
arr[i]=a[i];}
Array(){}
voiddisplay()
{for(inti=0;i<=9;i++)
cout<cout<}
共6页第4页
~Array(){cout<<"detructoriscalled"<(3);
};
Arrayoperator+(Arrayb,Arraya)
{Arraytemp;
inti;
(4)
(5);
returntemp;}
voidmain()
{intb1[10]={11,21,13,42,5,16,27,38,29,0};
intb2[10]={0,9,8,7,6,5,4,3,2,1};
Arrayarr1(b1),arr2(b2),arr3;
arr3=arr1+arr2;
arr3.display();
}
3.TodefineaclassofPointandamemberfunction(doubleDistance(Point&))forcalculatingdistanceofdeuce(两点)andoutput.(6points)
#include
#include
usingnamespacestd;
classPoint
{public:
(6)
{x=xx;y=yy;}
doubleDistance(Point&p)//求两点之间的距离
{x-=p.x;
y-=p.y;
(7);
}
private:
doublex;
doubley;
};
voidmain()
{Pointp1(7,2),p2(3,4);
(8);
}
4.Therearetwocomplexobjects‘com1’and‘com2’,thefollowingprogramcanjudgewhether‘com1’isequalto‘com2’with‘==’operatoroverloadfunction.(4points)
#include
usingnamespacestd;
classcomplex
{floatx,y;
public:
complex(floata=0,floatb=0)
{x=a;y=b;}
booloperator==(complexc)
{(9);}
booloperator!
=(complexc)
{(10);}
};
intmain()
{complexc1(4.0,5.0),c2(1.5,4.0);
if(c1==c2)
cout<<”c1=c2”<elseif(c1!
=c2)
cout<<”c1!
=c2”<else
cout<<”error”<}