C++与数据结构基础简明教程课后习题答案
1-7-1
//输出一个数的10 倍
#include
using namespace std;
int main()
{
}
1-7-2cout<<"Please input an interger:\n"; int a;
cin>>a;
cout<<"result="< //输出两个数中的较小的#include { } 1-7-3double x,y,min; cout<<"please input two numbers"< min=(x>y?y:x); cout<<"the smaller is"<<' '< //输入半径计算周长和面积 #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< return 0; } 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"; cin>>n; if (n>0) y=n+1; if (n<0) y=n*n; } 2-4if (n==0) y=0; cout<<"the result is:"<<' '< //输出学生学号和对应的成绩等级 #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 using namespace std; 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() { } 2-11int 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 开始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; } } 2-12if(sushu!=100) goto start; return 0; //百钱买百鸡问题 #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++) { } 3-1-1 } cout< } return 0; if(i+j>=6&&i+j<=14&&j-i<=4&&i-j<=4) cout<<'*'; else cout<<' '; //向数组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++; } l; } 3-3-1cout<<"成绩大于平均值的人数是"< #include using namespace std; int main() { int a[10],sum=0,min,max; double ave; int *ptoa=a; for (int i=0;i<=9;i++) { cin>>*(a+i); sum+=*(a+i); } min=*(a); max=*(a); for (int j=1;j<=9;j++) { min=(min<*(a+j)?min:*(a+j)); max=(max>*(a+j)?max:*(a+j)); } } 3-3-2cout< #include using namespace std; int main() { int a[10],sum=0,j=0,c=0; //定义数组a,sum 是各学生成绩之和,j 是小于60 的个数,c 是大于平均值的个数 double ave=0; //定义平均值 int *ptoa=a; //使用指针 for (int i=0;i<=9;i++) //输入并算和,统计小于60 的 { cin>>*(ptoa+i); sum+=*(ptoa+i); if (*(ptoa+i)<60) { j++; } } ave=sum/10.0; //计算平均值 //cout< for (int k=0;k<=9;k++) //计算大于平均值的 { if (*(ptoa+k)>ave) { c++; } } } 3-3-3cout< #include using namespace std; int main() { char string[100]; cin>>string; int i=0,an=0,in=0; cout<<"您输入的字符串"; while (string[i]!='\0') { if(string[i]=='a') an++; if(string[i]=='i') in++; cout< i++; } cout< return 0; } 3-3-3a #include using namespace std; int main() { char a[100]; //定义存放字符串的数组 char *ptoa=a; //使用指针 int i=0,an=0,in=0; //an,in 分别为a,i 的个数cin>>a; while (*(ptoa+i)!='\0') //a【i】 { cout<<*(ptoa+i); switch (*(ptoa+i)) //判断 { } i++; }case 'a' : an++;break; case 'i' : in++;break; } 3-3-4cout< #include { int a[3][3]; for (int i=0;i<=2;i++) { for(int j=0;j<=2;j++) { cin>>*(*(a+i)+j); } } cout<<*(*(a+0)+0)+*(*(a+1)+1)+*(*(a+2)+2)< cout<<*(*(a+0)+2)+*(*(a+1)+1)+*(*(a+2)+0)< return 0; } 3-3-5v1 #include using namespace std; int main() { int a[11]={2,4,5,8,12,14,16,18,20,30,0},b,i,m,j; cin>>b; a[10]=b; if (b<2) { m=0; goto end; } if (b>30) { goto end2; } for(i=0;i<=9;i++) { if (a[i+1]>b) { } end:; m=i+1; goto end; } for (j=10;j>=m+1;j--) { a[j]=a[j-1]; } end2:; }a[m]=b; for (int k=0;k<=10;k++) cout< 3-3-5v2 #include using namespace std; int main() { int i,j,temp; int a[11]={2,4,5,8,12,14,16,18,20,30}; cin>>a[10]; for (i=0;i<=10;i++) {for(j=0;j<=10-i-1;j++) { if(a[j]>a[j+1]) { temp=a[j+1]; a[j+1]=a[j]; a[j]=temp; } } } for (int k=0;k<=10;k++) cout< cout<<'\n'; return 0; } 3-3-5v3 #include using namespace std; int main() { int a[11]={2,4,5,8,12,14,16,18,20,30},num,i,j; cout<<"请输入一个整数"; cin>>num; if (num>a[9]) { a[10]=num; }