c習(xí)題與編程實(shí)踐常規(guī)練習(xí)題及解答_第1頁
c習(xí)題與編程實(shí)踐常規(guī)練習(xí)題及解答_第2頁
c習(xí)題與編程實(shí)踐常規(guī)練習(xí)題及解答_第3頁
c習(xí)題與編程實(shí)踐常規(guī)練習(xí)題及解答_第4頁
c習(xí)題與編程實(shí)踐常規(guī)練習(xí)題及解答_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、題 1.分析以下程序執(zhí)行的結(jié)果 #include #includeclass Slepublic:x,y; le()x=y=0;S Sle(a,b)x=a;y=b;void disp()coutx=x,y=yendl;voidmain()Sle s1(2,3);s1.disp();題 2.分析以下程序的執(zhí)行結(jié)果 #includeclass Slex,y; public:S SSle()x=y=0; le(a,le()b)x=a;y=b;if(x=y)coutx=yendl;elsecoutx!=yendl;void disp()coutx=x,y=yendl;void main()Sle s1

2、(2,3);s1.disp();題 3.分析以下程序的輸出結(jié)果 #includeclass Slex; public:Sle(a)x=a; coutconstructingobject:x=xendl;voidfunc(n)sic Sle obj(n);voidmain()func(1);func(10);題 1.4 分析以下程序的執(zhí)行結(jié)果#includeclass Slex,y; public:Sle()x=y=0;Sle(a,b)x=a;y=b;void disp()coutx=x,y=ydisp();題 1.5 分析以下程序的執(zhí)行結(jié)果#includeclass Slepublic:x;y

3、;void disp()coutx=x,y=yendl;voidmain()Slele:*pc; s;le:x;Spc=&Ss.*pc=10;pc=&Sle:y;s.*pc=20; s.disp();題 6.分析以下程序的執(zhí)行結(jié)果 #includeclass Slepublic:S SSle(); le();le();void display(); protected:x;Sle:Sle()x=0;coutconstructing normallyn;Sle:Sle(m)x=m; coutconstructing winumber:xendl;void Sle:display()coutdis

4、play a number:xendl;Sle:Sle()coutdestructingn;void main()S Sle obj1;le obj2(20);obj1.display(); obj2.display();題 7.分析以下程序的執(zhí)行結(jié)果 #includeclass Slen; icssum;public:Svoid voidle(x)n=x;add()sum+=n; disp()coutn=n,sum=sumendl;Sle:sum=0;/靜態(tài)數(shù)據(jù)成員賦初值void main()Sle a(2),b(3),c(5);a.add();a.disp();b.add();b.disp

5、();c.add();c.disp();題 8.分析以下程序執(zhí)行的結(jié)果 #includeclass SleA;icsB;public:Ssle(a)A=a,B+=a;ic void func(Sle s);void Sle:func(Sle s)coutA=s.A,B=Bendl;Sle:B=0;void main()S S Sle s1(2),s2(5);le:func(s1);le:func(s2);題 9.分析以下程序的執(zhí)行結(jié)果 #includeclass Slechar c1,c2; public:Sle(char a)c2=(c1=a)-32;void disp()coutc1轉(zhuǎn)換為

6、c2endl;voidmain()Sle a(a),b(b);a.disp();b.disp();題 10.分析以下程序執(zhí)行的結(jié)果 #includeclass Slex,y; public:S Sle()x=y=0;le(a,b)x=a;y=b;void disp()coutx=x,y=yendl;void main()S Sle les1,s2(1,2),s3(10,20);*pa3=&s1,&s2,&s3; i=0;idisp();for(題 11. 分析以下程序的執(zhí)行結(jié)果#includeclass Slex,y; public:S Sle()x=y=0;le(a,b)x=a,y=b;vo

7、id disp()coutx=x,y=yendl;voidmain()S Sle s1,s2(1,2),s3(10,20);le *Pa3;Pa0=&s1; Pa1=&s2; Pa2=&s3;for(i=0;idisp();題 12. 分析以下程序的執(zhí)行結(jié)果#includeclass Slepublic:x;y;void disp()coutx=x,y=y*pc=10;pc=&Sle:y;p-*pc=20; p-disp();題 13.分析以下程序的執(zhí)行結(jié)果 #includeclass Slex;y; public:Sle(a,b)x=a;y=b;getx()return x;gety()re

8、turn y;void main()(Sle:*fp)();fp=&Sle:getx;Sle s(2,7); v=(s.*fp)();fp=&Sle:gety;t=(s.*fp)(); coutv=v,t=tendl;題 14 .分析以下程序的執(zhí)行結(jié)果 #includeclass Slex;y; public:Sle(a,b)x=a;y=b;getx()return x;gety()return y;voidmain()(Sfp=&Sle:*fp)(); le:getx; s(2,7),*p=&s;Slev=(p-*fp)();fp=&Sle:gety;t=(p-*fp)(); coutv=v

9、,t=tendl;題 15.設(shè)計(jì)一個(gè)立方體類 Box,它能計(jì)算并輸出立方體的體積和表面積。解:Box 類包含三個(gè)私有數(shù)據(jù)成員 a(立方體邊長(zhǎng))、volume(體積)和 area(表面積),另有兩個(gè)構(gòu)造函數(shù)以及 seta()(設(shè)置立方體邊長(zhǎng))、getvolume()(計(jì)算體積)、getarea()(計(jì)算表面積)和 disp()(輸出結(jié)果)。本題程序如下:#include class Boxfloat float floata; volume; area;public:Box()Box(float r)a=r;void void void voidseta(float r)a=r; getvolu

10、me()volume=a*a*a; getarea()area=6*a*a; disp()cout體積:volume,表面積:areaendl;voidmain()Box obj1(4.5),obj2; obj2.seta(6.4); obj1.getvolume(); obj1.getarea(); cout; obj1.disp(); obj2.getvolume(); obj2.getarea(); cout; obj2.disp();本程序的執(zhí)行結(jié)果如下:obj1=體積:91.125, 表面積:121.5 obj2=體積:262.144,表面積:245.76題 19.編寫一個(gè)程序,輸入

11、 N 個(gè)學(xué)生數(shù)據(jù),包括學(xué)號(hào)、些學(xué)生數(shù)據(jù)并計(jì)算平均分。解:設(shè)計(jì)一個(gè)學(xué)生類 Stud,除了包括 no(學(xué)號(hào))、name(、成績(jī),要求輸出這)和 deg(成績(jī))數(shù)據(jù)成員外,有兩個(gè)靜態(tài)變量 sum 和 num,分別存放總分和人數(shù),另有兩個(gè)普通成員函數(shù) setdata()和 disp(),分別用于給數(shù)據(jù)成員賦值和輸出數(shù)據(jù)成員的值,另有一個(gè)靜態(tài)成員函數(shù) avg(),它用于計(jì)算平均分。在 main()函數(shù)中定義了一個(gè)對(duì)象數(shù)組用于輸入的學(xué)生數(shù)據(jù)。本題程序如下: #include #include #define N 3classStudno;char name10; deg;s sic icnum; sum;

12、public:void setdata(n,char na,d)no=n; deg=d; strcpy(name,na); sum+=d;num+;sic double avg()return sum/num;void disp()prf(%-5d%-8s%3dn,no,name,deg);Stud:sum=0; Stud:num=0;void main()Stud stN;i,n,d; char na10;for(i=0;iN;i+)prf(輸入學(xué)號(hào)成績(jī):);scanf(%d%s%d,&n,na,&d);sti.setdata(n,na,d);prf(輸出數(shù)據(jù)n);prf(學(xué)號(hào)成績(jī)n);fo

13、r(i=0;iN;i+)sti.disp();prf(平均分=%gnn,Stud:avg();本程序的執(zhí)行結(jié)果如下:輸入學(xué)號(hào)輸入學(xué)號(hào)輸入學(xué)號(hào)輸出數(shù)據(jù)成績(jī):成績(jī):成績(jī):123stud1 89stud2 78stud84學(xué)號(hào)123平均分=83成績(jī)stud1 stud2 stud3897884C+習(xí)題與(-01)01.分析以下程序的執(zhí)行結(jié)果 #includevoid main()a;&b=a; b=10;/變量couta=aendl;02.分析以下程序的執(zhí)行結(jié)果 #includeclass Slex; public:S S Sle();le( le(Sa)x=a;le &a)x=a.x+1;void

14、 disp()coutx=xendl;void main()Sle s1(2),s2(s1);s2.disp();05.設(shè)計(jì)一個(gè)類S解:le,實(shí)現(xiàn)兩個(gè)復(fù)數(shù)的乘法運(yùn)算。Sle 類包括復(fù)數(shù)的實(shí)部和虛部,以及實(shí)現(xiàn)復(fù)數(shù)相乘的成員函數(shù)mult()和輸出復(fù)數(shù)的成員函數(shù)disp()。本題的程序如下: #includeclass Sfloat a; float b; public: SSle/ 實(shí)部/ 虛部le()le(float x,float y)a=x;b=y;void mult(Sle &s)/ 對(duì)象作為參數(shù)if(&s=this)/ 不能自己相乘cout自己不能相乘0)couta+biendl; el

15、secouta-biendl;void main()Sle s1(2,3),s2(3,4);cout復(fù)數(shù)s1:; s1.disp();cout復(fù)數(shù)s2:; s2.disp(); s1.mult(s2);cout相乘結(jié)果:; s1.disp(); coutendl;本程序執(zhí)行結(jié)果如下:復(fù)數(shù)s1:2+3i復(fù)數(shù)s2:3+4i相乘結(jié)果:-6+17i題 1.分析以下程序的執(zhí)行結(jié)果 #includevoid swap(&x,&y)temp;temp=x; x=y; y=temp;void main()x=10,y=20;swap(x,y); coutx=x,y=yendl;題 2.分析以下程序的執(zhí)行結(jié)果

16、#includevoid main()a=10,20,30,40,*pa=a;*&pb=pa; pb+; cout*paendl;題 3.分析以下程序的執(zhí)行結(jié)果#includeclass Sx; public:S S Slele();le(a)x=a;le(Sle &a)x=a.x+ +10;void disp()coutx=xendl;void main()Sle s1(2),s2(s1);s1.disp();s2.disp();題 4.分析以下程序的執(zhí)行結(jié)果 #includeclass Sx,y; public:S Slele()x=y=0;le(i,j)x=i;y=j; le &s);j

17、)x=i;y=j;void copy(S void setxy(i,void pr()coutx=x,y=yendl;void Sle:copy(Sle &s)x=s.x;y=s.y;void func(Sle s1,Sle &s2)s1.setxy(10,20);s2.setxy(30,40);void main()Sle p(1,2),q;q.copy(p);func(p,q);p.pr q.pr();();題 8.編寫一個(gè)程序,設(shè)計(jì)一個(gè)點(diǎn)類Po解:,求兩個(gè)點(diǎn)之間的距離。設(shè)計(jì)一個(gè)普通函數(shù)distance(Po距離。本題程序如下: #include #include class Pox,y;

18、 public:&p1,Po&p2),用于計(jì)算p1 和p2 點(diǎn)之間的Po(i,j)x=i;y=j;getx() return x;gety() return y; void disp()cout(xy);float distance(Pofloat d;&p1,Po&p2)/ 對(duì)象作為參數(shù)d=sqrt(p1.getx()-p2.getx()*(p1.getx()-p2.getx()+(p1.gety()-p2.gety()*(p1.gety()-p2.gety(); return d;void main()Pop1(2,2),p2(5,5);p1.disp(); cout與; p2.disp(

19、);cout之間距離=distance(p1,p2)endl;C+習(xí)題與(-01)01.分析以下程序的執(zhí)行結(jié)果 #includeclass Slen; public:Sle(i)n=i;friendadd(Sle&s1,Sle&s2);add(Sle &s1,Sle&s2)return s1.n+s2.n;void main()Sle s1(10),s2(20);coutadd(s1,s2)endl;02.分析以下程序的執(zhí)行結(jié)果 #includeclass classB; Ai; public:set(B&); get()returnx)i=x;i;A(;classBi; public:B(x

20、)i=x;friend A;A:set(B &b) B 定義之后return i=b.i;/ 由于使用了類B 的定義,故本函數(shù)的定義應(yīng)放在類void main()A a(1);B b(2);couta.get(),; a.set(b); couta.get()endl;題 1.分析以下程序的執(zhí)行結(jié)果 #includeclass Sn; public:S Slele() le (m)n=m;friend void square(Ss.n=s.n*s.n;void disp()le &s)coutn=nendl;void main()Sle a(10);square(a); a.disp();題

21、2.分析以下程序的執(zhí)行結(jié)果 #includeclass B; class Ai; friend B;void disp()coutiendl;class Bpublic:void set(A a; a.i=n;n)/ i 是對(duì)象a 的私有數(shù)據(jù)成員,在類可以使用a.disp(); / disp()是對(duì)象a 的私有成員函數(shù),在類可以使用;void main()B b; b.set(2);題 3.分析以下程序的執(zhí)行結(jié)果 #includeclass teacher; class studentchar *name; public:student(char *s)name=s;friend void p

22、r(student &,teacher &);class teacherchar *name; public:teacher(char *s)name=s;friend void pr(student &,teacher &);void pr(student &a,teacher &b)coutthe student is:endl; coutthe teacher is:endl;void main()student s(Li Hu); teacher t(Wang);pr(s,t);C+習(xí)題與(重載-01)01.分析以下程序執(zhí)行結(jié)果 #includeadd(x,y)

23、return x+y;double add(double x,doublereturn x+y;void main()a=4,b=6;y)double c=2.6,d=7.4; coutadd(a,b),add(c,d)endl;02.分析以下程序的執(zhí)行結(jié)果 #includeclass Slei; double d; public:void void voidsetdata(n)i=n;setdata(double x)d=x; disp()couti=i,d=dendl;void main()Sle s;s.setdata(10); s.setdata(15.6);s.disp();03.分

24、析以下程序的執(zhí)行結(jié)果 #include class Slen; public:S S Svoidle() le(i)n=i;le &operator=(Sle);disp()coutn=nendl; Sle &Sle:operator=(Sles)Sle:n=s.n;return *this;void main()Sle s1(10),s2;s2=s1; s2.disp();題 1.分析以下程序的執(zhí)行結(jié)果 #includeadd(x,y)return x+y;add(x,y,z)return x+y+z;void main()a=4,b=6,c=10;coutadd(a,b),add(a,b,

25、c)endl;題 2.分析以下程序的執(zhí)行結(jié)果 #includeclass Si;ledouble d; public:void setdata( void setdata(i=n;d=x;void disp()n)i=n;d=0; n,double x)couti=i,d=dendl;void main()Sle s;s.setdata(10); s.disp(); s.setdata(2,15.6); s.disp();題 3.分析以下程序的執(zhí)行結(jié)果 #includeclass Slen; public:Sle()Sle(i)n=i;le operator-(S le operator+(S

26、friend S friend Sle &,S le &,Sle &);le &);void disp()coutn=nendl; Sle operator-(Sle &s1,Sle &s2)m=s1.n-s2.n;return Sle(m);Sle operator+(Sm=s1.n+s2.n;le &s1,Sle &s2)return Sle(m);void main()Sle s1(10),s2(20),s3;s3=s2-s1; s3.disp(); s3=s2+s1; s3.disp();題 4.分析以下程序的執(zhí)行結(jié)果 #includeclass SleA1010;public:&op

27、erator()(,);&Sle:operator()(x,y)return Axy;void main()Sle a; i,j;for(i=0;i10;i+) for(j=0;j10;j+)a(i,j)=i+j;for(i=0;i10;i+) couta(i,1) ;coutendl;題 5.分析以下程序的執(zhí)行結(jié)果 #includeclass Slen; public:Sle(i)n=i;operator+()n+;/ 前綴重載運(yùn)算符operator+( void disp()n+=2;/ 后綴重載運(yùn)算符coutn=nendl;void main()S A+;+B;le A(2),B(2);

28、/調(diào)用后綴重載運(yùn)算符/ 調(diào)用前綴重載運(yùn)算符disp();disp();題 6.設(shè)計(jì)一個(gè)三角形類 Triangle,包含三角形三條邊長(zhǎng)的私有數(shù)據(jù)成員,另有一個(gè)重載運(yùn)算符“+”,以實(shí)現(xiàn)求兩個(gè)三角形對(duì)象的面積之和。解:在Triangle 類中設(shè)計(jì)一個(gè)函數(shù)operator+(Triangle t1,Triangle t2),它重載運(yùn)算符+,返回t1 和t2 兩個(gè)三角形的面積之和。本題程序如下:#include #include class Trianglex,y,z; double area; public:Triangle(double s;i,j,k)x=i;y=j;z=k; s=(x+y+z)/

29、2.0;area=sqrt(s*(s-x)*(s-y)*(s-z);void disparea()coutArea=areaendl;friend double operator+(Triangle t1,Triangle t2)return t1.area+t2.area;void main()Triangle t1(3,4,5),t2(4,5,6); double s;coutt1:; t1.disparea();coutt2:; t2.disparea(); s=t1+t2;cout總面積=sendl;本程序執(zhí)行結(jié)果如下: t1:Area=6 t2:Area=9.92157總面積=15.9216題 9.在Time 類中設(shè)計(jì)如下重載運(yùn)算符函數(shù):Time operator+(Time); Time operator-(Time);本題程序如下:#include class Timehour,minute,second; public:Time()返回一時(shí)間加上另一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論