C++与数据结构基础简明教程课后习题答案
C++与数据结构基础简明教程课后习题答案
1-7-1
//输出一个数的10倍
#include
using namespace std;
int main()
{
cout<<"Please input an interger:\n";
int a;
cin>>a;
cout<<"result="< return 0; } 1-7-2 //输出两个数中的较小的 #include using namespace std; int main() { double x,y,min; cout<<"please input two numbers"< cin>>x>>y; min=(x>y?y:x); cout<<"the smaller is"<<' '< return 0; } 1-7-3 //输入半径计算周长和面积 #include using namespace std; int main() { cout<<"请输入半径\n"; double rad; cin>>rad; double c,s; c=2*3.14*rad; s=3.14*rad*rad; cout<<"周长是"< cout<<"面积是"< return 0; } 1-7-4 //将10000秒化成小时分钟秒 #include using namespace std; int main() { int hour,min,second; hour=10000/3600; min=(10000%3600)/60; second=10000-hour*3600-60*min; cout< } 1-7-5 //将一个三位数倒叙输出 #include 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< cout< cout< return 0; } 2-3 //简单的输入输出 #include using namespace std; int main() { double y,n; cout<<"please input a number\n"; if (n>0) y=n+1; if (n<0) y=n*n; if (n==0) y=0; cout<<"the result is:"<<' '< return 0; } 2-4 //输出学生学号和对应的成绩等级 #include using namespace std; int main() { double fenshu; int xuehao; char dengji; int i; for (i=1;i<=10;i++) { onerror:cout<<"please input student score\n"; cin>>fenshu; if (fenshu>=90&&fenshu<=100) dengji='A'; if (fenshu>=80&&fenshu<90) dengji='B'; if (fenshu>=600&&fenshu<80) dengji='C'; if (fenshu>=0&&fenshu<60) dengji='D'; if (fenshu<0) { cout<<"error"; goto onerror; } if (fenshu>100) { cout<<"error"; goto onerror; } cout<<"the id is"< cout<<"the score is"< } return 0; } 2-5 //判断输入字符类别 #include using namespace std; int main() { char zifu; int ascii; cout<<"please input a characteristic\n"; cin>>zifu; ascii=zifu; if (ascii>=48&&ascii<=57) { cout<<"数字\n"; goto end; } if (ascii>=97&&ascii<=122) { cout<<"小写字母\n"; goto end; } if (ascii>=65&&ascii<=90) { cout<<"大写字母\n"; goto end; } cout<<"其他字符"; cout< end: return 0; } 2-6 //求圆周率的近似值 #include #include int main() { int xishu=-1; double danshu=1.0; int i=1; double sifenzhipi=0; do { xishu=xishu*(-1); danshu=1.0/(2*i-1); sifenzhipi=sifenzhipi+xishu*danshu; i++; } while(danshu>=0.000001); cout< } 2-7 //输出斐波那契数列前40个数,以8*5的格式输出#include #include using namespace std; int main() { int b=2; int feibo1=0; int feibo2=1; cout< for(int i=1;i<=38;i++) { int a=feibo2; feibo2=feibo1+feibo2; feibo1=a; cout< b=b+1; if(b%8==0) cout< } return 0; } 2-8 //统计输入的元音字母个数 #include using namespace std; int main() { char zimu; int a,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; case '#' :goto end; } goto begin; end:cout< return 0; } 2-10 //计算5!+6!+7! #include using namespace std; int main() { int i,j; int sum=0; for (i=5;i<=7;i++) { int jiecheng=1; for (j=1;j<=i;j++) jiecheng=jiecheng*j; sum=sum+jiecheng; } cout< return 0; } 2-11 //从2开始100个素数 #include using namespace std; int main() { int num=1; int sushu=0; start:; num++; for (int i=2;i<=num;i++) { if(num%i==0) break; } if (i==num) { cout< sushu+=1; } if(sushu!=100) goto start; return 0; } 2-12 //百钱买百鸡问题 #include using namespace std; int main() { int x,y,z; for(x=0;x<=100;x++) { for(y=0;y<=100;y++) { for(z=0;z<=100;z++) if (x+y+z==100&&5*x+3*y+z/3==100&&z%3==0) cout<< x<<'\t'< } } return 0; } 2-13 #include using namespace std; int main() { int a,b,c,d,e; c=0; cin>>a; cout<<"输入"< b=1; e=a*a*a; while (c!=e) { d=b; c=0; for (int i=1;i<=a;i++) { c=c+d; d=d+2; } b=b+2; } //cout< int f=b-4; for (int j=1;j<=a;j++) { f=f+2; cout< } cout<<"的和\n"; return 0; } 2-14 //输出四方*形状 #include using namespace std; int main() { int i,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<<'*'; else cout<<' '; } cout< } return 0; } 3-1-1 //向数组a中输入10个整数,求其中的最大值,最小值和10个数的算术平均值#include using namespace std; int main() { int a[10]; for(int i=0;i<=9;i++) cin>>a[i]; int max=a[0],min=a[0],sum=a[0]; for(int j=0;j<=9;j++) { sum=sum+a[j]; max=(max>a[j]?max:a[j]); min=(min } double ave=sum/10.00; cout< return 0; } 3-1-2 #include using namespace std; int main() { int score[10]; int sum=0,a=0,b=0; for(int i=0;i<=9;i++) { cin>>score[i]; sum=sum+score[i]; } double ave=sum/10.0; for(int j=0;j<=9;j++) { if(score[j]>ave) a++; if(score[j]<60) b++; }