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

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上C+与数据结构基础简明教程课后习题答案 1-7-1/输出一个数的10倍#include <iostream>using namespace std;int main()         cout<<"Please input an interger:n"         int a;      &#

2、160;  cin>>a;         cout<<"result="<<a*10<<endl;         return 0;1-7-2/输出两个数中的较小的#include <iostream>using namespace std;int main()       

3、  double x,y,min;         cout<<"please input two numbers"<<endl;         cin>>x>>y;         min=(x>y?y:x);     &

4、#160;   cout<<"the smaller is"<<' '<<min<<endl;         return 0;1-7-3/输入半径计算周长和面积#include <iostream>using namespace std;int main()         cout<<"请输入半

5、径n"         double rad;         cin>>rad;         double c,s;         c=2*3.14*rad;       

6、0; s=3.14*rad*rad;         cout<<"周长是"<<c<<endl;         cout<<"面积是"<<s<<endl;         return 0;1-7-4/将10000秒化成小时分钟秒#include

7、 <iostream>using namespace std;int main()         int hour,min,second;         hour=10000/3600;         min=(10000%3600)/60;         s

8、econd=10000-hour*3600-60*min;         cout<<hour<<"hours"<<min<<"minutes"<<second<<"seconds"<<endl;         return 0;1-7-5/将一个三位数倒叙输出#include <io

9、stream>using namespace std;int main()int num,num_bai,num_shi,num_ge;cout<<"请输入一个三位数"cin>>num;num_bai=num/100;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;return 0

10、;2-3/简单的输入输出#include <iostream>using namespace std;int main()         double y,n;         cout<<"please input a numbern"         cin>>n;  

11、0;      if (n>0) y=n+1;         if (n<0) y=n*n;         if (n=0) y=0;         cout<<"the result is:"<<' '<<y;

12、0;        return 0;2-4/输出学生学号和对应的成绩等级#include <iostream>using namespace std;int main()         double fenshu;         int xuehao;         c

13、har dengji;         int i;         for (i=1;i<=10;i+)                            onerro

14、r:cout<<"please input student scoren"                   cin>>fenshu;                   if (fenshu&

15、gt;=90&&fenshu<=100) dengji='A'                   if (fenshu>=80&&fenshu<90) dengji='B'             

16、0;     if (fenshu>=600&&fenshu<80) dengji='C'                   if (fenshu>=0&&fenshu<60) dengji='D'       

17、0;           if (fenshu<0)                                     

18、0;         cout<<"error"                            goto onerror;       &#

19、160;                              if (fenshu>100)                  

20、                             cout<<"error"                  

21、;          goto onerror;                                      cout<<&

22、quot;the id is"<<i<<endl;                   cout<<"the score is"<<dengji<<endl;               &

23、#160;  return 0;2-5/判断输入字符类别#include <iostream>using namespace std;int main()char zifu;int ascii;cout<<"please input a characteristicn"cin>>zifu;ascii=zifu;if (ascii>=48&&ascii<=57)             

24、;     cout<<"数字n"         goto end;         if (ascii>=97&&ascii<=122)                  co

25、ut<<"小写字母n"         goto end;         if (ascii>=65&&ascii<=90)                  cout<<"大写字母n"

26、         goto end;         cout<<"其他字符"cout<<endl;end:return 0;2-6/求圆周率的近似值#include <iostream>#include <iomanip>using namespace std;int main()int xishu=-1;double danshu=1.0;int i=1;doubl

27、e sifenzhipi=0;do         xishu=xishu*(-1);         danshu=1.0/(2*i-1);         sifenzhipi=sifenzhipi+xishu*danshu;         i+;while(danshu&

28、gt;=0.);cout<<setprecision(15)<<sifenzhipi*4<<endl;return 0;2-7/输出斐波那契数列前40个数,以8*5的格式输出#include <iostream>#include <iomanip>using namespace std;int main()           int b=2;        

29、; int feibo1=0;         int feibo2=1;         cout<<setw(9)<<'0'<<setw(9)<<'1'         for(int i=1;i<=38;i+)     

30、;                       int a=feibo2;                   feibo2=feibo1+feibo2;    

31、0;              feibo1=a;                   cout<<setw(9)<<feibo2;           &

32、#160;       b=b+1;                   if(b%8=0) cout<<endl;                  return 0;2-8/统计输入的

33、元音字母个数#include <iostream>using namespace std;int main()         char zimu;         int a,e,i,o,u;         a=e=u=i=o=0;         begin:c

34、in>>zimu;         switch(zimu)                  case 'a' :a+;break;         case 'e' :e+;break;    

35、;     case 'i' :i+;break;         case 'o' :o+;break;         case 'u' :u+;break;         case '#' :goto end;   &

36、#160;              goto begin;end:cout<<a<<endl<<e<<endl<<i<<endl<<o<<endl<<u<<endl<<a+e+i+o+u;         return 0;2-10/计算5!+6!+7!#inclu

37、de <iostream>using namespace std;int main()         int i,j;         int sum=0;         for (i=5;i<=7;i+)            

38、;      int jiecheng=1;         for (j=1;j<=i;j+) jiecheng=jiecheng*j;         sum=sum+jiecheng;                 

39、 cout<<sum;         return 0;2-11/从2开始100个素数#include <iostream>using namespace std;int main()         int num=1;         int sushu=0;      

40、;   start:;         num+;         for (int i=2;i<=num;i+)                          

41、;  if(num%i=0) break;                  if (i=num)                            cout<

42、<num<<endl;                   sushu+=1;                  if(sushu!=100) goto start;      &#

43、160;  return 0;2-12/百钱买百鸡问题#include <iostream>using namespace std;int main()         int x,y,z;         for(x=0;x<=100;x+)               

44、;             for(y=0;y<=100;y+)                                   

45、            for(z=0;z<=100;z+)                                   &#

46、160; if (x+y+z=100&&5*x+3*y+z/3=100&&z%3=0) cout<<x<<'t'<<y<<'t'<<z<<endl;                           

47、return 0;2-13#include <iostream>using namespace std;int main()                 int a,b,c,d,e;         c=0;         cin>>a; 

48、        cout<<"输入"<<a<<endl<<"该数的三次方是"<<a<<"个连续奇数"         b=1;         e=a*a*a;      

49、60;  while (c!=e)                            d=b;                   c=0;

50、60;        for (int i=1;i<=a;i+)                                       &

51、#160;      c=c+d;                   d=d+2;                  b=b+2;      

52、60;           /cout<<b-2;         int f=b-4;         for (int j=1;j<=a;j+)                &

53、#160;           f=f+2;                   cout<<f<<' '               &#

54、160;  cout<<"的和n"         return 0;2-14/输出四方*形状#include <iostream>using namespace std;int main()         int i,j;         for (i=1;i<=9;i+)  

55、;                          j=1;                   for(j=1;j<=9;j+)   

56、60;                                           if(i+j>=6&&i+j<=14&&j-i<

57、=4&&i-j<=4) cout<<'*'                            else cout<<' '          

58、60;                 cout<<endl;                  return 0;3-1-1/向数组a中输入10个整数,求其中的最大值,最小值和10个数的算术平均值#include <iostream>using namespace

59、 std;int main()         int a10;         for(int i=0;i<=9;i+)                   cin>>ai;     

60、60;   int max=a0,min=a0,sum=a0;         for(int j=0;j<=9;j+)                            sum=sum+aj;   

61、                max=(max>aj?max:aj);                   min=(min<aj?min:aj);          

62、;        double ave=sum/10.00;         cout<<max<<endl<<min<<endl<<ave<<endl;         return 0; 3-1-2#include <iostream>using namespace st

63、d;int main()         int score10;         int sum=0,a=0,b=0;         for(int i=0;i<=9;i+)               

64、60;            cin>>scorei;                   sum=sum+scorei;               

65、60;  double ave=sum/10.0;         for(int j=0;j<=9;j+)                            if(scorej>ave) a+;   &

66、#160;               if(scorej<60) b+;                  cout<<"成绩大于平均值的人数是"<<a<<endl<<"成绩小于60的人数"<<

67、;b<<endl;         return 0;3-3-1#include <iostream>using namespace std;int main()         int a10,sum=0,min,max;         double ave;      

68、   int *ptoa=a;         for (int i=0;i<=9;i+)                            cin>>*(a+i);    &#

69、160;              sum+=*(a+i);                  min=*(a);         max=*(a);      

70、0;  for (int j=1;j<=9;j+)                            min=(min<*(a+j)?min:*(a+j);             &

71、#160;     max=(max>*(a+j)?max:*(a+j);                  cout<<max<<endl<<min<<endl;         ave=sum/10.0;     

72、;    cout<<ave<<endl;         return 0;3-3-2#include <iostream>using namespace std;int main()         int a10,sum=0,j=0,c=0;          

73、60;             /定义数组a,sum是各学生成绩之和,j是小于60的个数,c是大于平均值的个数         double ave=0;                     /定

74、义平均值         int *ptoa=a;                         /使用指针         for (int i=0;i<=9;i+)  

75、                   /输入并算和 ,统计小于60的                            cin>>*(ptoa+

76、i);                   sum+=*(ptoa+i);                   if (*(ptoa+i)<60)       &#

77、160;                                       j+;           

78、60;                         ave=sum/10.0;                     /计算平均值   

79、0;     /cout<<ave<<endl;                     /可以输出平均值         for (int k=0;k<=9;k+)       

80、            /计算大于平均值的                            if (*(ptoa+k)>ave)       

81、60;                                       c+;           

82、0;                         cout<<c<<endl<<j;         return 0;3-3-3#include <iostream>using namespace std;int main() 

83、0;       char string100;         cin>>string;         int i=0,an=0,in=0;         cout<<"您输入的字符串"     &#

84、160;   while (stringi!='0')                            if(stringi='a') an+;           

85、60;       if(stringi='i') in+;                   cout<<stringi;                 &

86、#160; i+;                  cout<<endl<<an<<endl<<in<<endl;         return 0;3-3-3a#include <iostream>using namespace std;int main()  &

87、#160;      char a100;                 /定义存放字符串的数组         char *ptoa=a;              

88、                  /使用指针         int i=0,an=0,in=0;                     

89、;    /an,in分别为a,i的个数         cin>>a;         while (*(ptoa+i)!='0')                    

90、0;     /a【i】                            cout<<*(ptoa+i);              

91、0;    switch (*(ptoa+i)                        /判断                     

92、;                          case 'a' : an+;break;                    

93、;        case 'i' : in+;break;                                      i+; 

94、                 cout<<endl<<an<<endl<<in;         return 0;3-3-4#include <iostream>using namespace std;int main()       

95、;  int a33;          for (int i=0;i<=2;i+)                            for(int j=0;j<=2;j+)    

96、                                           cin>>*(*(a+i)+j);     

97、;                                cout<<*(*(a+0)+0)+*(*(a+1)+1)+*(*(a+2)+2)<<endl;         cout<<*

98、(*(a+0)+2)+*(*(a+1)+1)+*(*(a+2)+0)<<endl;         return 0;3-3-5v1#include <iostream>using namespace std;int main()         int a11=2,4,5,8,12,14,16,18,20,30,0,b,i,m,j;      

99、0;  cin>>b;         a10=b;         if (b<2)                            m=0;&

100、#160;                  goto end;                  if (b>30)             

101、               goto end2;                  for(i=0;i<=9;i+)               

102、60;            if (ai+1>b)                                     

103、;          m=i+1;                            goto end;           

104、                 end:;         for (j=10;j>=m+1;j-)                      

105、0;     aj=aj-1;                  am=b;end2:;         for (int k=0;k<=10;k+)             

106、0;     cout<<ak<<endl;         return 0;3-3-5v2#include <iostream>using namespace std;int main()         int i,j,temp;         int a11=2,4,5,8

107、,12,14,16,18,20,30;         cin>>a10;         for (i=0;i<=10;i+)         for(j=0;j<=10-i-1;j+)            &#

108、160;                                  if(aj>aj+1)              

109、0;                                                  temp=aj+

110、1;                                     aj+1=aj;            &

111、#160;                        aj=temp;                        

112、0;                                               for (int k=0;k<=10;k+) cout<&l

113、t;ak<<' '         cout<<'n'         return 0;3-3-5v3#include <iostream>using namespace std;int main()         int a11=2,4,5,8,12,14,16,18,20,30,nu

114、m,i,j;         cout<<"请输入一个整数"         cin>>num;         if (num>a9)               &#

115、160;             a10=num;                  else                   

116、0;        for (i=0;i<=11;i+)                                        

117、;       if(ai>num)                                          &#

118、160;                      for(j=9;j>=i;j-)                         

119、                                                   

120、;        aj+1=aj;                                          &

121、#160;                               ai=num;                  

122、;                   break;                               

123、60;                                 for (i=0;i<=10;i+)                &#

124、160;           cout<<ai<<' '                  return 0;3-3-5final#include<iostream.h>void main()        

125、 int a11=2,4,5,8,12,14,16,18,20,30,b,i=0,j=10;         cin>>b;         while(ai<b&&i<=9)i+;         while(j>i)        

126、;           aj=aj-1;                   j-;                  ai=b;  

127、60;      cout<<"输入插入后的结果:"         for(i=0;i<11;i+)cout<<ai<<" "         cout<<endl;3-3-6#include <iostream>using namespace std;int main()

128、0;        int a53,s5=0,0,0,0,0,temp;         for (int i=0;i<=4;i+)                           

129、; cout<<"请输入第"<<i+1<<"行的数据"<<endl;                   for (int j=0;j<=2;j+)               

130、;                                cin>>*(*(a+i)+j);               

131、0;            *(s+i)+=*(*(a+i)+j);                                     /*&#

132、160;        /注释掉的部分可以输出每行数据之和         for (int k=0;k<=4;k+)                            

133、       cout<<*(s+k)<<endl;                  */         for (int m=0;m<=4;m+)         for (int n

134、=0;n<=4-m-1;n+)                            if (*(s+n)>*(s+n+1)                &

135、#160;                   temp=*(s+n+1);                             

136、60;       *(s+n+1)=*(s+n);                                     *(s+n)=temp;  

137、60;                                                  &#

138、160;          for (int l=0;l<=4;l+)                            cout<<endl<<*(s+l);     

139、60;             cout<<endl;         system("pause");         return 0;4-3#include <iostream>using namespace std;int fun1(int x,int y);int fun2(

140、int x,int y);int fun3(int x,int y);int fun4(int x,int y);  int main()         int a,b;         cout<<"输入两个数"         cin>>a>>b;  

141、60;      cout<<"两个数的和的平方是"<<fun1(a,b)<<endl;         cout<<"两个数的平方和是"<<fun2(a,b)<<endl;         cout<<"两个数的差的平方是"<<fu

142、n3(a,b)<<endl;         cout<<"两个数平方的差是"<<fun4(a,b)<<endl;         return 0;   int fun1(int x,int y)         int z=(x+y)*(x+y); 

143、;        return z;  int fun2(int x,int y)         int z=x*x+y*y;         return z; int fun3(int x,int y)         int z=(x-y)*(x-y)

144、;         return z; int fun4(int x,int y)         int z=x*x-y*y;         return z;4-4#include <iostream>using namespace std;double jc(int x);int sm(int x);  &#

145、160;int main()         int m,n,s2;         double s1;         cin>>m>>n;         s1=jc(m)/(jc(n)*jc(m-n);    

146、;     s2=sm(m)-sm(n);         cout<<s1<<endl<<s2;         return 0;  double jc(int x)         double s=1;    

147、60;    for (int i=1;i<=x;i+) s*=i;         return s; int sm(int x)         int s=0;         for (int i=1;i<=x;i+) s+=i;      

148、;   return s;4-6#include <iostream>#include <cmath>using namespace std;double jxf(int n);double txf(int n);double f(double x);/const pi=3.;int main()         int n;         double y1,y2;  

149、       cin>>n;         y1=jxf(n);         y2=txf(n);         cout<<y1<<endl<<y2;       

150、0; return 0;  double jxf(int n)         double sum=0,s;         for (int i=0;i<=n-1;i+)                     

151、;       s=(i*3.14)/n;                   sum+=(3.14/n)*f(s);                  return sum;  

152、double txf(int n)         double sum=0,s1,s2;         for (int i=0;i<=n-1;i+)                        &

153、#160;   s1=i*3.14/n;                   s2=(i+1)*3.14/n;                   sum+=3.14/n*(f(s1)+f(s2);  

154、;                sum/=2.0;         return sum;  double f(double x)         double y;         y=sin(x

155、)+cos(x);         return y;4-6v1#include <iostream>#include <cmath>using namespace std;double jxf(int n);double txf(int n);double f(double x);const pi=3.;int main()         int n;     

156、;    double y1,y2;         cin>>n;         y1=jxf(n);         y2=txf(n);         if (abs(y1-2)>abs(y2-2) cout<<

157、;"矩形法"         else cout<<"梯形法"         return 0;  double jxf(int n)         double sum=0;         for (

158、int i=0;i<=n-1;i+) sum+=pi/n*f(i*pi/n);         return sum;  double txf(int n)         double sum=0;         for (int i=0;i<=n-1;i+) sum+=pi/n*(f(i*pi/n)+f(i+1)*pi/n);         sum/=2;         return sum;  double f(double x)    &#

温馨提示

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

评论

0/150

提交评论