《C语⾔程序设计》第4版何钦铭、颜晖主编课后习题答案第2章 ⽤C语⾔编写程序
Page 020
1#include<stdio.h>//练习2-3
2int main(void)
3{
4 int i,j,k;
5 for(int i=1;i<=4;i++)//第i⾏
6 {
7 for(int j=1;j<=i-1;j++)//j个空格
8 {
9 printf(" ");
10 }
11 for(k=1;k<=5-i;k++)//k个*
12 {
13 printf("* ");
14 }
15 printf("\n");
16 }
17
18 return 0;
19}
Page 023
1#include<stdio.h>
2int main(void)
3{
4 int f,c;//练习2-5
5 f=150;
6 c=5*(f-32)/9;//或者是c=5/9.0*(f-32)||c=5.0/9*(f-32),但不可以是5/9,会得到0.因为:两个整型数据做除法运算,结果⼀定是整数。
7 printf("华⽒温度%d对应的摄⽒温度为%d.\n",f,c);
8
9 printf("\n");
10
11 /*计算物体⾃由下落的距离(练习2-6)*/
12 int h,g,t;
13 t=3;//下落时间
14 g=10;//重⼒加速度 10m/s^2
15 h=g*t*t/2;
16 printf("⼀个物体从100⽶的⾼空⾃由下落,前3秒内下落的距离为:%d⽶.\n",h);
17
18 return 0;
19}
20
Page 029
2#include<math.h>
3int main(void)
4{
5 /*计算摄⽒温度(练习2-8)*/
6 double c,f;
7 printf("输⼊华⽒温度:");
8 scanf("%lf",&f);
9 c=5*(f-32)/9.0;
10 printf("华⽒温度%.2lf对应的摄⽒温度为%.3lf\n",f,c);
11
12 printf("\n");
13
14 /*整数四则运算(练习2-9)*/
15 int x,y,z_1,z_2,z_3;
16 double z_4;
17 printf("输⼊两个正整数x,y:");
18 scanf("%d %d",&x,&y);
19 z_1=x+y;
20 z_2=x-y;
21 z_3=x*y;
22 z_4=x/y;
23 printf("%d和%d的和为%d,差为%d,积为%d,商为%lf\n",x,y,z_1,z_2,z_3,z_4); 24
25 printf("\n");
26
27 /*计算分段函数(判断x是否不为0)(练习2-10)*/
28 double x_1,y_1;
29 printf("输⼊x_1:");
30 scanf("%lf",&x_1);
31 if(x_1!=0)
32 y_1=1/x_1;
33 else y_1=0;
34 printf("输⼊%.2lf时,对应的y值为%.1lf\n",x_1,y_1);
35
36 printf("\n");
37
38 /*计算分段函数(判断x是否⼩于0)(练习2-11)*/
39 double x_2,y_2;
40 printf("输⼊x_2:");
41 scanf("%lf",&x_2);
42 if(x_2<0)
43 y_2=pow(1+x_2,2)+2*x_2+1/x_2;
44 else y_2=sqrt(x_2);
45 printf("输⼊%.2lf时,对应的y值为%.2lf\n",x_2,y_2);
46
47
48 printf("\n");
49
50 return 0;
51}
Page 037
2int main(void)
3{
4 int i,n,flag;//例2-8
5 double t,sum;
6 printf("输⼊⼀个正整数n:");
7 scanf("%d",&n);
8 sum=0;
9 flag=1;
10 for(i=1;i<=n;i++)
11 {
12 t=flag*(1.0/(2*i-1));
13 sum+=t;
14 flag=(-1)*flag;
15
16 }
17 printf("sum=%lf\n",sum);
18
19 printf("\n");
20
21 /*求1+1/2+···的前n项和(练习2-13)*/
22 int n_1,j;
23 double sum_1=0;
24 printf("Enter n_1(n_1>=0):");
25 scanf("%d",&n_1);
26 for(j=1;j<=n;j++)
27 {
28 sum_1+=1.0/j;
29 }
30 printf("sum_1=%.2lf\n",sum_1);
31
32 printf("\n");
33
34 /*求1+1/3+1/5+···的前n项和(练习2-14)*/
35 int n_2,k;
36 double sum_2;
37 printf("Enter n_2:");
38 scanf("%d",&n_2);
39 for(k=1;k<=n_2;k++)
40 {
41 sum_2+=1.0/(2*k-1);
42 }
43 printf("sum_2=%.2lf\n",sum_2);
44
45 printf("\n");
46
47 /*求1-1/4+1/7-1/10+···的前n项和(练习2-15)*/
48 int n_3,m,flag_1=1;
49 double sum_3=0;
50 printf("Enter n_3:");
51 scanf("%d",&n_3);
52 for(m=1;m<=n;m++)
53 {
54 sum_3+=flag_1*1.0/(3*m-2);
55 flag_1=flag_1*(-1);
56 }
57 printf("sum_3=%.2lf\n",sum_3);
58
59 return 0;
60}
Page 040
2#include<math.h>
c语言程序设计教材答案3int main(void)
4{
5 int n,i;
6 double power;
7 printf("Enter n:");
8 scanf("%d",&n);
9 printf("2的乘⽅表:\n");
10 for(i=0;i<=n;i++)
11 {
12 power=pow(2,i);
13 printf("2的%d次⽅为%.0lf\n",i,power);
14 }
15
16 printf("\n");
17
18 /*3的乘⽅表(练习2-17)*/
19 int m,j;
20 double power_1;
21 printf("Enter m:");
22 scanf("%d",&m);
23 for(j=0;j<=m;j++)
24 {
25 power_1=pow(3,j);
26 printf("pow(3,%d)=%.lf\n",j,power_1);
27 }
28
29 return 0;
30}
1#include<stdio.h>//练习2-18
2double fact(int n)
3{
4 int i;
5 double product;
6 product=1;
7 for(i=1;i<=n;i++)
8 {
9 product*=i;
10 }
11
12 return product;
13}
14int main(void)
15{
16 int n,m,i;
17 double result_1,result_2,result_3,c;
18 printf("输⼊两个正整数m和n(m<=n):");
19 scanf("%d %d",&m,&n);
20 for(i=0;i<=n;i++)
21 {
22 result_1=fact(i);
23 }
24 for(i=0;i<=m;i++)
25 {
26 result_2=fact(i);
27 }
28 for(i=0;i<=n-m;i++)
29 {
30 result_3=fact(i);
31 }
32 c=result_1/(result_2*result_3);
33 printf("c=%.lf",c);
34
35 return 0;
36}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论