当前位置:文档之家› (完整版)C++与数据结构基础简明教程课后习题答案

(完整版)C++与数据结构基础简明教程课后习题答案

(完整版)C++与数据结构基础简明教程课后习题答案
(完整版)C++与数据结构基础简明教程课后习题答案

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 using namespace std; int main()

{

}

1-7-3double x,y,min;

cout<<"please input two numbers"<>x>>y;

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 using namespace std; int main()

{

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;

}

相关主题
文本预览
相关文档 最新文档