C++与数据结构基础简明教程课后习题答案_第1页
C++与数据结构基础简明教程课后习题答案_第2页
C++与数据结构基础简明教程课后习题答案_第3页
C++与数据结构基础简明教程课后习题答案_第4页
C++与数据结构基础简明教程课后习题答案_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+与数据结构基础简明教程课后习题答案1-7-1输出一个数的10倍#include<iostream>usingnamespacestd;intmain()cout<<"Pleaseinputaninterger:n"inta;cin>>a;cout<<"result="<<a*10<<endl;return0;1-7-2输出两个数中的较小的#include<iostream>usingnamespacestd;intmain()doublex,y,min;cout<

2、;<"pleaseinputtwonumbers"<<endl;cin>>x>>y;min=(x>y?y:x);cout<<"thesmalleris"<<''<<min<<endl;return0;1-7-3/输入半径计算周长和面积#include<iostream>usingnamespacestd;intmain()cout<<"请输入半径n"doublerad;cin>>rad;d

3、oublec,s;c=2*3.14*rad;s=3.14*rad*rad;cout<<"周长是"<<c<<endl;cout<<"面积是"<<s<<endl;return0;1-7-4/将10000秒化成小时分钟秒#include<iostream>usingnamespacestd;intmain()inthour,min,second;hour=10000/3600;min=(10000%3600)/60;second=10000-hour*3600-60*min;c

4、out<<hour<<"hours"<<min<<"minutes"<<second<<"seconds"<<endl;return0;1-7-5/将一个三位数倒叙输出#include<iostream>usingnamespacestd;intmain()intnum,num_bai,num_shi,num_ge;cout<<"请输入一个三位数"cin>>num;num_bai=num/100;

5、num_shi=(num-num_bai*100)/10;num_ge=num-num_bai*100-num_shi*10;cout<<num_ge<<endl;cout<<num_shi<<endl;cout<<num_bai<<endl;return0;2-3/简单的输入输出#include<iostream>usingnamespacestd;intmain()doubley,n;cout<<"pleaseinputanumbern"cin>>n;if(n&g

6、t;0)y=n+1;if(n=0)y=0;cout<<"theresultis:"<<''<<y;return0;2-4/输出学生学号和对应的成绩等级#include<iostream>usingnamespacestd;intmain()doublefenshu;intxuehao;chardengji;inti;for(i=1;i<=10;i+)student scoren"dengji='A'dengji='B'dengji='C'dengj

7、i='D'onerror:cout<<"pleaseinputcin>>fenshu;if(fenshu>=90&&fenshu<=100)if(fenshu>=80&&fenshu<90)if(fenshu>=600&&fenshu<80)if(fenshu>=0&&fenshu<60)if(fenshu<0)cout<<"error"gotoonerror;cout<<"

8、error"gotoonerror;cout<<"theidis"<<i<<endl;cout<<"thescoreis"<<dengji<<endl;return0;2-5/判断输入字符类别#include<iostream>usingnamespacestd;intmain()charzifu;intascii;cout<<"pleaseinputacharacteristicn"cin>>zifu;ascii=z

9、ifu;if(ascii>=48&&ascii<=57)cout<<"数字n"gotoend;if(ascii>=97&&ascii<=122)cout<<"小写字母n"gotoend;if(ascii>=65&&ascii<=90)cout<<"大写字母n"gotoend;cout<<"其他字符"cout<<endl;end:return0;2-6/求圆周率的近似值#in

10、clude<iostream>#include<iomanip>usingnamespacestd;intmain()intxishu=-1;doubledanshu=1.0;inti=1;doublesifenzhipi=0;doxishu=xishu*(-1);danshu=1.0/(2*i-1);sifenzhipi=sifenzhipi+xishu*danshu;i+;while(danshu>=0.000001);cout<<setprecision(15)<<sifenzhipi*4<<endl;return0;)2

11、-7输出斐波那契数列前40个数,以8*5的格式输出#include<iostream>#include<iomanip>usingnamespacestd;intmain()intb=2;intfeibo1=0;intfeibo2=1;cout<<setw(9)<<'0'<<setw(9)<<'1'for(inti=1;i<=38;i+)inta=feibo2;feibo2=feibo1+feibo2;feibo1=a;cout<<setw(9)<<feibo2

12、;b=b+1;if(b%8=0)cout<<endl;return0;2-8/统计输入的元音字母个数#include<iostream>usingnamespacestd;intmain()charzimu;inta,e,i,o,u;a=e=u=i=o=0;begin:cin>>zimu;switch(zimu)case'a':a+;break;case'e':e+;break;case'i':i+;break;case'o':o+;break;case'u':u+;break;

13、case'#':gotoend;)gotobegin;end:cout<<a<<endl<<e<<endl<<i<<endl<<o<<endl<<u<<endl<<a+e+i+o+u;return0;)2-10计算5!+6!+7!usingnamespacestd;intmain()inti,j;intsum=0;for(i=5;i<=7;i+)intjiecheng=1;for(j=1;j<=i;j+)jiecheng=jiechen

14、g*j;sum=sum+jiecheng;cout<<sum;return0;2-11/从2开始100个素数#include<iostream>usingnamespacestd;intmain()intnum=1;intsushu=0;start:;num+;for(inti=2;i<=num;i+)if(num%i=0)break;if(i=num)(cout<<num<<endl;sushu+=1;)if(sushu!=100)gotostart;return0;)2-12/百钱买百鸡问题#include<iostream>

15、;usingnamespacestd;intmain()(intx,y,z;for(x=0;x<=100;x+)(for(y=0;y<=100;y+)(cout<<for(z=0;z<=100;z+)if(x+y+z=100&&5*x+3*y+z/3=100&&z%3=0)x<<'t'<<y<<'t'<<z<<endl;)return0;)2-13#include<iostream>usingnamespacestd;intmai

16、n()(inta,b,c,d,e;c=0;cin>>a;cout<<"输入"<<a<<endl<<"该数的三次方是"<<a<<"个连续奇数"b=1;e=a*a*a;while(c!=e)(d=b;c=0;for(inti=1;i<=a;i+)(c=c+d;d=d+2;b=b+2;/cout<<b-2;intf=b-4;for(intj=1;j<=a;j+)(f=f+2;cout<<f<<''

17、;cout<<"的和n"return0;2-14/输出四方*形状#include<iostream>usingnamespacestd;intmain()inti,j;for(i=1;i<=9;i+)j=1;for(j=1;j<=9;j+)if(i+j>=6&&i+j<=14&&j-i<=4&&i-j<=4)cout<<'*'elsecout<<''cout<<endl;return0;3-1-1/向

18、数组a中输入10个整数,求其中的最大值,最小值和10个数的算术平均值#include<iostream>usingnamespacestd;intmain()inta10;for(inti=0;i<=9;i+)cin>>ai;intmax=a0,min=a0,sum=a0;for(intj=0;j<=9;j+)(sum=sum+aj;max=(max>aj?max:aj);min=(min<aj?min:aj);doubleave=sum/10.00;cout<<max<<endl<<min<<en

19、dl<<ave<<endl;return0;3-1-2#include<iostream>usingnamespacestd;intmain()(intscore10;intsum=0,a=0,b=0;for(inti=0;i<=9;i+)(cin>>scorei;sum=sum+scorei;doubleave=sum/10.0;for(intj=0;j<=9;j+)(if(scorej>ave)a+;if(scorej<60)b+;cout<<"成绩大于平均值的人数是"<<a

20、<<endl<<"成绩小于60的人数"<<b<<endl;return0;3-3-1#include<iostream>usingnamespacestd;intmain()(inta10,sum=0,min,max;doubleave;int*ptoa=a;for(inti=0;i<=9;i+)(cin>>*(a+i);sum+=*(a+i);min=*(a);max=*(a);for(intj=1;j<=9;j+)min=(min<*(a+j)?min:*(a+j);max=(ma

21、x>*(a+j)?max:*(a+j);cout<<max<<endl<<min<<endl;ave=sum/10.0;cout<<ave<<endl;return0;3-3-2#include<iostream>usingnamespacestd;intmain()/ 定义平均值/ 定义数组 a, sum 是各学生成绩之和,inta10,sum=0,j=0,c=0;j是小于60的个数,c是大于平均值的个数doubleave=0;int*ptoa=a;/使用指针for(inti=0;i<=9;i+)

22、/输入并算和,统计小于60的cin>>*(ptoa+i);sum+=*(ptoa+i);if(*(ptoa+i)<60)j+;/ 计算平均值/ 可以输出平均值ave=sum/10.0;/cout<<ave<<endl;for(intk=0;k<=9;k+)/计算大于平均值的if(*(ptoa+k)>ave)(c+;)cout<<c<<endl<<j;return0;)3-3-3#include<iostream>usingnamespacestd;intmain()(charstring100

23、;cin>>string;inti=0,an=0,in=0;cout<<"您输入的字符串"while(stringi!='0')(if(stringi='a')an+;if(stringi='i')in+;cout<<stringi;i+;)cout<<endl<<an<<endl<<in<<endl;3-3-3a#include<iostream>usingnamespacestd;intmain()chara100;

24、/定义存放字符串的数组char *ptoa=a;int i=0,an=0,in=0;cin>>a;while (*(ptoa+i)!='0')cout<<*(ptoa+i);switch (*(ptoa+i)/ 使用指针/an , in 分别为 a, i 的个数/a 【 i 】/ 判断case'a':an+;break;case'i':in+;break;i+;cout<<endl<<an<<endl<<in;return0;3-3-4#include<iostream

25、>usingnamespacestd;intmain()inta33;for(inti=0;i<=2;i+)(for(intj=0;j<=2;j+)(cin>>*(*(a+i)+j);)cout<<*(*(a+0)+0)+*(*(a+1)+1)+*(*(a+2)+2)<<endl;cout<<*(*(a+0)+2)+*(*(a+1)+1)+*(*(a+2)+0)<<endl;return0;)3-3-5v1#include<iostream>usingnamespacestd;intmain()(inta

26、11=2,4,5,8,12,14,16,18,20,30,0,b,i,m,j;cin>>b;a10=b;if(b<2)m=0;gotoend;if(b>30)for(i=0;i<=9;i+)if(ai+1>b)m=i+1;gotoend;end:;for(j=10;j>=m+1;j-)aj=aj-1;am=b;end2:;for(intk=0;k<=10;k+)cout<<ak<<endl;return0;3-3-5v2#include<iostream>usingnamespacestd;intmain()i

27、nti,j,temp;inta11=2,4,5,8,12,14,16,18,20,30;for(i=0;i<=10;i+)for(j=0;j<=10-i-1;j+)(if(aj>aj+1)temp=aj+1;aj+1=aj;aj=temp;for(intk=0;k<=10;k+)cout<<ak<<'cout<<'n'return0;3-3-5v3#include<iostream>usingnamespacestd;intmain()inta11=2,4,5,8,12,14,16,18,20,30

28、,num,i,j;cout<<"请输入一个整数"cin>>num;if(num>a9)a10=num;else(for(i=0;i<=11;i+)(if(ai>num)(for(j=9;j>=i;j-)(aj+1=aj;ai=num;break;for(i=0;i<=10;i+)(cout<<ai<<''return0;3-3-5final#include<iostream.h>voidmain()inta11=2,4,5,8,12,14,16,18,20,30,b,i

29、=0,j=10;cin>>b;while(ai<b&&i<=9)i+;while(j>i)aj=aj-1;j-;)ai=b;cout<<"输入插入后的结果:"for(i=0;i<11;i+)cout<<ai<<""cout<<endl;)3-3-6#include<iostream>usingnamespacestd;intmain()inta53,s5=0,0,0,0,0,temp;for(inti=0;i<=4;i+)cout<

30、<"请输入第"<<i+1<<"行的数据"<<endl;for(intj=0;j<=2;j+)cin>>*(*(a+i)+j);*(s+i)+=*(*(a+i)+j);/*/注释掉的部分可以输出每行数据之和for(intk=0;k<=4;k+)cout<<*(s+k)<<endl;*/for(intm=0;m<=4;m+)for(intn=0;n<=4-m-1;n+)if(*(s+n)>*(s+n+1)temp=*(s+n+1);*(s+n+1)=*

31、(s+n);*(s+n)=temp;for(intl=0;l<=4;l+)cout<<endl<<*(s+l);cout<<endl;system("pause");return0;4-3#include<iostream>usingnamespacestd;intfun1(intx,inty);intfun2(intx,inty);intfun3(intx,inty);intfun4(intx,inty);intmain()inta,b;COUt<V"输入两个数cin»a»b;cou

32、t«"两个数的和的平方是"«fun1(a,b)«endl;cout«"两个数的平方和是"«fun2(a,b)«endl;cout«"两个数的差的平方是"«fun3(a,b)«endl;cout«"两个数平方的差是"«fun4(a,b)«endl;return0;)intfun1(intx,inty)(intz=(x+y)*(x+y);returnz;)intfun2(intx,inty)(intz

33、=x*x+y*y;returnz;intfun3(intx,inty)intz=(x-y)*(x-y);returnz;intfun4(intx,inty)intz=x*x-y*y;returnz;4-4#include<iostream>usingnamespacestd;doublejc(intx);intsm(intx);intmain()intm,n,s2;doubles1;cin>>m>>n;s1=jc(m)/(jc(n)*jc(m-n);s2=sm(m)-sm(n);cout<<s1<<endl<<s2;ret

34、urn0;doublejc(intx)s*=i;s+=i;doubles=1;for(inti=1;i<=x;i+)returns;intsm(intx)ints=0;for(inti=1;i<=x;i+)returns;4-6#include<iostream>#include<cmath>usingnamespacestd;doublejxf(intn);doubletxf(intn);doublef(doublex);/constpi=3.1415927;intmain()intn;doubley1,y2;cin>>n;y1=jxf(n);

35、y2=txf(n);cout<<y1<<endl<<y2;return0;doublejxf(intn)doublesum=0,s;for(inti=0;i<=n-1;i+)s=(i*3.14)/n;sum+=(3.14/n)*f(s);returnsum;doubletxf(intn)doublesum=0,s1,s2;for(inti=0;i<=n-1;i+)s1=i*3.14/n;s2=(i+1)*3.14/n;sum+=3.14/n*(f(s1)+f(s2);sum/=2.0;returnsum;doublef(doublex)doubl

36、ey;y=sin(x)+cos(x);returny;4-6v1#include<iostream>#include<cmath>usingnamespacestd;doublejxf(intn);doubletxf(intn);doublef(doublex);constpi=3.1415927;intmain()intn;doubley1,y2;cin>>n;y1=jxf(n);y2=txf(n);if(abs(y1-2)>abs(y2-2)cout<<"矩形法"elsecout<<"梯形法&q

37、uot;return0;doublejxf(intn)doublesum=0;for(inti=0;i<=n-1;i+)sum+=pi/n*f(i*pi/n);returnsum;doubletxf(intn)doublesum=0;for(inti=0;i<=n-1;i+)sum+=pi/n*(f(i*pi/n)+f(i+1)*pi/n);sum/=2;returnsum;doublef(doublex)doubley;y=sin(x)+cos(x);returny;4-6v2error#include<iostream>#include<cmath>us

38、ingnamespacestd;doublejxf(intn);doubletxf(intn);doublef(doublex);constpi=3.1415927;intmain()intn;doubley1,y2;cin>>n;y1=jxf(n);y2=txf(n);if(abs(y1-2)>abs(y2-2)cout<<"矩形法"elsecout<<"梯形法"return0;doublejxf(intn)doublesum=0;for(inti=0;i<=n-1;i+)sum+=pi/n*f(i*pi

39、/n);returnsum;doubletxf(intn)doublesum=0;for(inti=0;i<=n-1;i+)sum+=pi/n*(f(i*pi/n)+f(i+1)*pi/n);sum/=2;returnsum;doublef(doublex)doubley;y=sin(x)+cos(x);returny;4-7#include<iostream>usingnamespacestd;intmy(intx,inty);intmb(intx,inty);intmain()inta,b,max,min;cin>>a>>b;max=my(a,b)

40、;min=mb(a,b);cout<<max<<endl<<min<<endl;system("pause");return0;intmy(intx,inty)for(inti=(x>y?y:x);i>=1;i-)if(x%i=0&&y%i=0)returni;intmb(intx,inty)for(inti=(x>y?x:y);i>=1;i+)if(i%x=0&&i%y=0)returni;4-11#include<iostream>usingnamespa

41、cestd;voiddelchar(char*s1,chars2);intmain()chars1100;chars2;cin>>s1>>s2;delchar(s1,s2);return0;voiddelchar(char*s1,chars2)for(inti=1;*(s1+i)!='0'i+)if(*(s1+i)=s2)for(intj=0;*(s1+i+j)!='0'j+)*(s1+i+j)=*(s1+i+j+1);cout<<s1;4-12#include<iostream>#include<cmath

42、>usingnamespacestd;intcheck(inta,intb,intc);doubles(doublea,doubleb,doublec);doublea,b,c;cin>>a>>b>>c;if(check(a,b,c)cout<<s(a,b,c);elsecout<<"error"system("pause");return0;intcheck(inta,intb,intc)if(a+b>c&&abs(a-b)<c)return1;elseret

43、urn0;doubles(doublea,doubleb,doublec)doublep=(a+b+c)/2;doublearea=sqrt(p*(p-a)*(p-b)*(p-c);returnarea;4-13#include<iostream>#include<cmath>usingnamespacestd;fun(intn,intk);intmain()intn,k;cin>>n>>k;cout<<fun(n,k)<<endl;system("pause");return0;intfun(intn

44、,intk)0;if(k>n|k<1)returnelseints;s=n/pow10(k-1);s=s%10;returns;intpow10(intx)ints=1;for(inti=1;i<=x;i+)s*=10;returns;4-14#include<iostream>usingnamespacestd;doubleave(intp4,inti);intmain()inta54;for(inti=0;i<=4;i+)for(intj=0;j<=3;j+)cin>>aij;for(i=0;i<=4;i+)cout<<

45、;ave(a,i)<<endl;system("pause");return0;doubleave(intp4,inti)doublesum=0;for(intj=0;j<=3;j+)sum+=pij;sum/=4;returnsum;4-15#include<iostream>usingnamespacestd;intfind(charstr,chara);intmain()charstr100,a;cin>>str>>a;cout<<find(str,a)+1;system("pause&quo

46、t;);return0;intfind(charstr,chara)for(inti=0;stri!='0'i+)if(stri=a)returni;break;if(stri='0')return-1;/4_16#include<iostream>usingnamespacestd;intchange(intn,intR,int*a);intmain()cout<<"PleaseinputnandR(2<=R<=16)"<<endl;intn,R,a10;cin>>n>>

47、;R;inti=change(n,R,a);for(intj=i-1;j>=0;j-)switch(aj)case11:cout<<'A'break;case12:cout<<'B'break;case13:cout<<'C'break;case14:cout<<'D'break;case15:cout<<'E'break;default:cout<<aj;system("pause");return0;intchan

48、ge(intn,intR,int*a)inti=0;while(n!=0)*(a+i)=n%R;n/=R;i+;returni;4-17#include<iostream>usingnamespacestd;constintN=5;intinit(intaN);voidfun1(intaN);voidfun2(intaN);voidfun3(intaN,intsum);voidfun4(intaN);intmain()intsum=0;inta2N;sum=init(a);cout<<"(1)"<<endl;fun1(a);cout<

49、;<"(2)"<<endl;fun2(a);cout<<"(3)"<<endl;fun3(a,sum);cout<<"(4)"<<endl;fun4(a);return0;intinit(intaN)intsum=0;for(inti=0;i<=N-1;i+)a0i=i+1;cin>>a1i;sum+=a1i;returnsum;voidfun1(intaN)for(inti=0;i<=N-1;i+)if(a1i>85)(cout<&

50、lt;a0i<<''<<a1i<<endl;)voidfun2(intaN)(for(inti=0;i<=N-1;i+)if(a1i<60)(cout<<a0i<<''<<a1i<<endl;)voidfun3(intaN,intsum)(intaveplus=0;doubleave=sum/N;for(inti=0;i<=N-1;i+)if(a1i>=ave)aveplus+;cout<<aveplus<<endl;voidfun

51、4(intaN)for(inti=0;i<=N-1;i+)for(intj=0;j<=N-1;j+)if(a1j>a1j+1)inttemp1=a1j+1;a1j+1=a1j;a1j=temp1;inttemp2=a0j+1;a0j+1=a0j;a0j=temp2;for(i=0;i<=N-1;i+)cout<<a0i<<''<<a1i<<endl;5-5/计算当前日期是一年之中的第几天#include<iostream>usingnamespacestd;/定义日期类private:/y年m月

52、d天nod一年中的第几天ly是否是闰年inty,m,d,nod,ly;public:Date(intioy=2009,intiom=5,intiod=1)y=ioy;m=iom;d=iod;intcheckdate();intIssleapyear();voidPrint();intNumberOfDays();/是否是闰年intDate:Issleapyear()returnly=(y%400=0)|(y%4=0&&y%100!=0);/计算一年之中的第几天intDate:NumberOfDays()inta213=0,31,29,31,30,31,30,31,31,30,3

53、1,30,31,0,31,28,31,30,31,30,31,31,30,31,30,31;nod=0;for(inti=0;i<=m-1;i+)nod+=aIssleapyear()i;nod+=d;returnnod;/判断日期是否合法intDate:checkdate()return(m>0&&m<13)&&(d>0&&d<=31);/输出voidDate:Print()cout<<y<<"年"<<m<<"月"<<

54、;d<<"日"<<"是该年的第"<<NumberOfDays()<<"天"<<endl;/主函数intmain()Dated1;Dated2(1991,5,2);inty,m,d;cout<<"请依次输入年月日cin>>y>>m>>d;Dated3(y,m,d);d1.Print();d2.Print();if(d3.checkdate()d3.Print();elsecout<<"Error"system("pause");system(&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论