c++程序分析题.docx
- 文档编号:10842524
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:13
- 大小:16.43KB
c++程序分析题.docx
《c++程序分析题.docx》由会员分享,可在线阅读,更多相关《c++程序分析题.docx(13页珍藏版)》请在冰豆网上搜索。
c++程序分析题
三程序分析题
阅读以下程序,写出其运行结果。
1.#include
usingnamespacestd;
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<<"数组下标越界!
"< } cout<<"s="< } intfun(inti) {if(i>=10)throwi; returna[i]; } 2.#include usingnamespacestd; voidf(); classT {public: T() {cout<<"constructor"< try {throw"exception";} catch(char*) {cout<<"exception2"< throw"exception"; } ~T(){cout<<"destructor";} }; voidmain() {cout<<"mainfunction"< try{f();} catch(char*) {cout<<"exception1"< cout<<"mainfunction"< } voidf(){Tt;} 3.#include usingnamespacestd; 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; cout< Bclass&p2=obj; cout< cout< : fun()< Bclass*p3=&obj; cout< } 4.#include usingnamespacestd; classBASE {public: virtualvoidgetxy(inti,intj=0){x=i;y=j;} virtualvoidfun()=0; protected: intx,y; }; classA: publicBASE {public: voidfun(){cout<<"x="< }; classB: publicBASE {public: voidfun() {cout<<"x="< cout<<"y=x/y="< }}; voidmain() {BASE*pb; Aobj1;Bobj2;pb=&obj1;pb->getxy(10); pb->fun();pb=&obj2;pb->getxy(100,20);pb->fun(); } 5.#include usingnamespacestd; classBASE1 {public: BASE1(inti){cout<<"调用基类BASE1的构造函数: "< }; classBASE2 {public: BASE2(intj){cout<<"调用基类BASE2的构造函数: "< }; classA: publicBASE1,publicBASE2 {public: A(inta,intb,intc,intd): BASE2(b),BASE1(c),b2(a),b1(d) {cout<<"调用派生类A的构造函数: "< private: BASE1b1; BASE2b2; }; voidmain() {Aobj(1,2,3,4);} 6.#include usingnamespacestd; 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): \t" <<"a="< (obj2*obj3).get(a,b,c); cout<<"(obj2*obj3): \t" <<"a="< } 7.#include usingnamespacestd; 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<<"("< private: intx,y; }; voidmain() {vectorv1(1,2),v2(3,4),v3; cout<<"v1="; v1.display(); cout<<"v2="; v2.display(); v3=v1+v2; cout<<"v3=v1+v2="; v3.display(); } 8.#include usingnamespacestd; structdata {intn; intscore; }; voidmain() {dataa[3]={1000,83,1005,70,1009,95},*p=a; cout<<(p++)->score< cout<<(p++)->score< cout< cout<<(*p).score++< } 9.#include usingnamespacestd; classA {public: intf1(); intf2(); voidsetx(intm){x=m;cout< voidsety(intn){y=n;cout< intgetx(){returnx;} intgety(){returny;} private: intx,y; }; intA: : f1(){returnx+y;} intA: : f2(){returnx-y;} voidmain() {Aa; a.setx(10);a.sety(5); cout< cout< } 10.#include usingnamespacestd; classT {public: T(intx,inty) {a=x;b=y; cout<<"调用构造函数2."< cout< } T(T&d) {cout<<"调用构造函数1."< cout< } ~T(){cout<<"调用析构函数."< intadd(intx,inty=10){returnx+y;} private: inta,b; }; voidmain() {Td1(2,4); Td2(d1); cout< } 11.#include usingnamespacestd; classT {public: T(intx){a=x;b+=x;}; staticvoiddisplay(Tc) {cout<<"a="< private: inta; staticintb; }; intT: : b=5; voidmain() {TA(3),B(5); T: : display(A); T: : display(B); } 12.#include usingnamespacestd; classA {public: A(){a=25;} voidprinta(){cout<<"A: a="< private: inta; friendclassB; }; classB {public: voiddisplay1(At) {t.a++;cout<<"display1: a="< voiddisplay2(At) {t.a--;cout<<"display2: a="< }; voidmain() {Aobj1; Bobj2; obj1.printa(); obj2.display1(obj1); obj2.display2(obj1); obj1.printa(); } 13.#include usingnamespacestd; classA{ public: A(){cout<<"A"< ~A(){cout<<"~A"< }; classB{ public: B(){f();cout<<"B"< virtualvoidf(){cout<<"B: : f"< virtual~B(){cout<<"~B"< }; classD: publicB{ public: D(){cout<<"D"< voidf(){cout<<"D: : f"< virtual~D(){cout<<"~D"< private: Aa; }; voidmain() {B*pB=newD; pB->f(); deletepB; } 14.#include usingnamespacestd; 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() {cout<<"Number="< voidMyclass: : PrintSum() {cout<<"Sum="< voidmain() { MyclassM(3,7,10),N(14,9,1); M.PrintNumber();N.PrintNumber(); M.PrintSum();N.PrintSum(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 程序 分析