您好,欢迎访问三七文档
三程序分析题阅读以下程序,写出其运行结果。1.#includeiostreamusingnamespacestd;inta[10]={1,2,3,4,5,6,7,8,9,10};intfun(inti);voidmain(){inti,s=0;for(i=0;i=10;i++){try{s=s+fun(i);}catch(int){cout数组下标越界!endl;}}couts=sendl;}intfun(inti){if(i=10)throwi;returna[i];}2.#includeiostreamusingnamespacestd;voidf();classT{public:T(){coutconstructorendl;try{throwexception;}catch(char*){coutexception2endl;}throwexception;}~T(){coutdestructor;}};voidmain(){coutmainfunctionendl;try{f();}catch(char*){coutexception1endl;}coutmainfunctionendl;}voidf(){Tt;}3.#includeiostreamusingnamespacestd;classBclass{public:Bclass(inti,intj){x=i;y=j;}virtualintfun(){return0;}protected:intx,y;};classIclass:publicBclass{public:Iclass(inti,intj,intk):Bclass(i,j){z=k;}intfun(){return(x+y+z)/3;}private:intz;};voidmain(){Iclassobj(2,4,10);Bclassp1=obj;coutp1.fun()endl;Bclass&p2=obj;coutp2.fun()endl;coutp2.Bclass::fun()endl;Bclass*p3=&obj;coutp3-fun()endl;}4.#includeiostreamusingnamespacestd;classBASE{public:virtualvoidgetxy(inti,intj=0){x=i;y=j;}virtualvoidfun()=0;protected:intx,y;};classA:publicBASE{public:voidfun(){coutx=x'\t'y=x*x=x*xendl;}};classB:publicBASE{public:voidfun(){coutx=x'\t'y=yendl;couty=x/y=x/yendl;}};voidmain(){BASE*pb;Aobj1;Bobj2;pb=&obj1;pb-getxy(10);pb-fun();pb=&obj2;pb-getxy(100,20);pb-fun();}5.#includeiostreamusingnamespacestd;classBASE1{public:BASE1(inti){cout调用基类BASE1的构造函数:iendl;}};classBASE2{public:BASE2(intj){cout调用基类BASE2的构造函数:jendl;}};classA:publicBASE1,publicBASE2{public:A(inta,intb,intc,intd):BASE2(b),BASE1(c),b2(a),b1(d){cout调用派生类A的构造函数:a+b+c+dendl;}private:BASE1b1;BASE2b2;};voidmain(){Aobj(1,2,3,4);}6.#includeiostreamusingnamespacestd;classT{public:T(){a=0;b=0;c=0;}T(inti,intj,intk){a=i;b=j;c=k;}voidget(int&i,int&j,int&k){i=a;j=b;k=c;}Toperator*(Tobj);private:inta,b,c;};TT::operator*(Tobj){Ttempobj;tempobj.a=a*obj.a;tempobj.b=b*obj.b;tempobj.c=c*obj.c;returntempobj;}voidmain(){Tobj1(1,2,3),obj2(5,5,5),obj3;inta,b,c;obj3=obj1*obj2;obj3.get(a,b,c);cout(obj1*obj2):\ta=a'\t'b=b'\t'c=c'\t'endl;(obj2*obj3).get(a,b,c);cout(obj2*obj3):\ta=a'\t'b=b'\t'c=c'\t'endl;}7.#includeiostreamusingnamespacestd;classvector{public:vector(){}vector(inti,intj){x=i;y=j;}friendvectoroperator+(vectorv1,vectorv2){vectortempvector;tempvector.x=v1.x+v2.x;tempvector.y=v1.y+v2.y;returntempvector;}voiddisplay(){cout(x,y)endl;}private:intx,y;};voidmain(){vectorv1(1,2),v2(3,4),v3;coutv1=;v1.display();coutv2=;v2.display();v3=v1+v2;coutv3=v1+v2=;v3.display();}8.#includeiostreamusingnamespacestd;structdata{intn;intscore;};voidmain(){dataa[3]={1000,83,1005,70,1009,95},*p=a;cout(p++)-scoreendl;cout(p++)-scoreendl;coutp-scoreendl;cout(*p).score++endl;}9.#includeiostreamusingnamespacestd;classA{public:intf1();intf2();voidsetx(intm){x=m;coutxendl;}voidsety(intn){y=n;coutyendl;}intgetx(){returnx;}intgety(){returny;}private:intx,y;};intA::f1(){returnx+y;}intA::f2(){returnx-y;}voidmain(){Aa;a.setx(10);a.sety(5);couta.getx()'\t'a.gety()endl;couta.f1()'\t'a.f2()endl;}10.#includeiostreamusingnamespacestd;classT{public:T(intx,inty){a=x;b=y;cout调用构造函数2.endl;couta'\t'bendl;}T(T&d){cout调用构造函数1.endl;coutd.a'\t'd.bendl;}~T(){cout调用析构函数.endl;}intadd(intx,inty=10){returnx+y;}private:inta,b;};voidmain(){Td1(2,4);Td2(d1);coutd2.add(8)endl;}11.#includeiostreamusingnamespacestd;classT{public:T(intx){a=x;b+=x;};staticvoiddisplay(Tc){couta=c.a'\t'b=c.bendl;}private:inta;staticintb;};intT::b=5;voidmain(){TA(3),B(5);T::display(A);T::display(B);}12.#includeiostreamusingnamespacestd;classA{public:A(){a=25;}voidprinta(){coutA:a=aendl;}private:inta;friendclassB;};classB{public:voiddisplay1(At){t.a++;coutdisplay1:a=t.aendl;};voiddisplay2(At){t.a--;coutdisplay2:a=t.aendl;};};voidmain(){Aobj1;Bobj2;obj1.printa();obj2.display1(obj1);obj2.display2(obj1);obj1.printa();}13.#includeiostreamusingnamespacestd;classA{public:A(){coutAendl;}~A(){cout~Aendl;}};classB{public:B(){f();coutBendl;}virtualvoidf(){coutB::fendl;}virtual~B(){cout~Bendl;}};classD:publicB{public:D(){coutDendl;}voidf(){coutD::fendl;}virtual~D(){cout~Dendl;}private:Aa;};voidmain(){B*pB=newD;pB-f();deletepB;}14.#includeiostreamusingnamespacestd;classMyclass{public:Myclass(inta,intb,intc);voidPrintNumber();voidPrintSum();private:intA,B,C;staticintSum;};intMyclass::Sum=10;Myclass::Myclass(inta,intb,intc){A=a;B=b;C=c;Sum+=A+B+C;}voidMyclass::PrintNumber(){coutNumber=A,B,Cendl;}voidMyclass::PrintSum(){coutSum=Sumendl;}voidmain(){MyclassM(3,7,10),N(14,9,1);M.PrintNumber();N.PrintNumber();M.PrintSum();N.PrintSum();}
本文标题:c++程序分析题
链接地址:https://www.777doc.com/doc-7028850 .html