c++程序分析题.docx

上传人:b****4 文档编号:4187620 上传时间:2022-11-28 格式:DOCX 页数:11 大小:16.48KB
下载 相关 举报
c++程序分析题.docx_第1页
第1页 / 共11页
c++程序分析题.docx_第2页
第2页 / 共11页
c++程序分析题.docx_第3页
第3页 / 共11页
c++程序分析题.docx_第4页
第4页 / 共11页
c++程序分析题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

c++程序分析题.docx

《c++程序分析题.docx》由会员分享,可在线阅读,更多相关《c++程序分析题.docx(11页珍藏版)》请在冰豆网上搜索。

c++程序分析题.docx

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<fun()<

}

 

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<score<

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();

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1