C程序设计 第五版 谭浩强 第五章
- 格式:ppt
- 大小:1.46 MB
- 文档页数:114


谭浩强c++程序设计课后答案
娄警卫
2 / 75
第一章
1.5题
#include
using namespace std;
int main()
{
cout<<"This"<<"is";
cout<<"a"<<"C++";
cout<<"program.";
return 0;
1.6题
#include
using namespace std;
int main()
{
int a,b,c;
a=10;
b=23;
c=a+b;
cout<<"a+b=";
cout<
cout<
return 0;
}
1.7七题
#include
using namespace std;
int main()
{
int a,b,c;
int f(int x,int y,int z);
cin>>a>>b>>c;
c=f(a,b,c);
cout<
return 0;
}
int f(int x,int y,int z)
{
int m;
if (x
else m=y;
if (z
}
1.8题
#include
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b;
c=a+b;
cout<<"a+b="<
return 0;
}
1.9题
#include
using namespace std;
int main()
{
int a,b,c;
int add(int x,int y);
cin>>a>>b;
c=add(a,b);
cout<<"a+b="<
return 0;
}
int add(int x,int y)
{int z;
z=x+y;
return(z);
}
3 / 75
第二章
2.3题
#include
using namespace std;
第七章 函数
7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
maxyueshu(m,n)
int m,n;
{ int i=1,t;
for(;i<=m&&i<=n;i++)
{if(m%i==0&&n%i==0)
t=i;
}
return(t);
}
minbeishu(m,n)
int m,n;
{int j;
if(m>=n) j=m;
else j=n;
for(;!(j%m==0&&j%n==0);j++);
return j;
}
main()
{int a,b,max,min;
printf("enter two number is: ");
scanf("%d,%d",&a,&b);
max=maxyueshu(a,b);
min=minbeishu(a,b);
printf("max=%d,min=%d\n",max,min);
}
7.2求方程 的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。
#include"math.h"
float yishigen(m,n,k)
float m,n,k;
{float x1,x2;
x1=(-n+sqrt(k))/(2*m);
x2=(-n-sqrt(k))/(2*m);
printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2);
}
float denggen(m,n)
float m,n;
{float x;
x=-n/(2*m);
printf("denggen is x=%.3f\n",x);
} float xugen(m,n,k)
float m,n,k;
{float x,y;
1、 用筛选法求100之内的素数。
解:
#include
#include
int main()
{int i,j,n,a[101];
for (i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for (i=2;i
for (j=i+1;j<=100;j++)
{if(a[i]!=0 && a[j]!=0)
if (a[j]%a[i]==0)
a[j]=0;
}
printf("\n");
for (i=2,n=0;i<=100;i++)
{ if(a[i]!=0)
{printf("%5d",a[i]);
n++;
}
if(n==10)
{printf("\n");
n=0;
}
}
printf("\n");
return 0;
}
2、 用选择法对10整数排序。
解:
#include
int main()
{int i,j,min,temp,a[11];
printf("enter data:\n");
for (i=1;i<=10;i++) {printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("The orginal numbers:\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for (i=1;i<=9;i++)
{min=i;
for (j=i+1;j<=10;j++)
if (a[min]>a[j]) min=j;
c语⾔程序设计第五版谭浩强习题答案第三章课后答案
第三章 最简单的C程序设计 ----顺序程序设计
1、假如我国国民⽣产总值的年增长率为7%, 计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
计算公式为$p = (1+r)^n$ ,其中r为年增长率,n为年数,p为与现在相⽐的倍数。
题⽬解析:
此题的关键主要是利⽤数学库math中pow函数进⾏计算,若不熟悉可以查阅帮助⽂档,查看pow函数的⽤法。
代码⽰例:
#include
#include
int main()
{C
float p, r, n;
r = 0.07;
n = 10;
p = pow(1 + r, n);
printf("p=%f\n", p);
return 0;
}
运⾏结果:
2、存款利息的计算。有1000元,想存5年,可按以下5种办法存:
(1)⼀次存5年期
(2)先存2年期,到期后将本息再存3年期
(3)先存3年期,到期后将本息再存2年期
(4)存1年期,到期后将本息再存1年期,连续存5次
(5)存活期存款,活期利息每⼀季度结算⼀次
2017年银⾏存款利息如下:
1年期定期存款利息为1.5%;
2年期定期存款利息为2.1%;
3年期定期存款利息为2.75%;
5年期定期存款利息为3%;
活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)
如果r为年利率,n为存款年数,则计算本息的公式如下:
1年期本息和: P= 1000* (1+r);
n年期本息和: P= 1000* (1+n* r);
存n次1年期的本息和: $P=1000* (1+r)^n$;
活期存款本息和: P= 1000 *(1+$\frac{r}{4}$)$^{4n}$;
说明: 1000*(1+$\frac{r}{4}$)是⼀个季度的本息和。
题⽬解析:
理解题意很关键,其次就是利⽤数学库math中pow函数进⾏幂次⽅计算代码⽰例:
#include
#include
int main()
{
float r5, r3, r2, r1, r0, p, p1, p2, p3, p4, p5;