习题2 Page 040~043

一、选择题

1~5 BDBAB 6~8 CDC

二、填空题

1、整型 实型

2、a=2#b=3

3、temp=a b=temp

4、n%2==0

5、sqrt(s*(s-a)*(s-b)*(s-c))

6、#include<math.h> #include<stdio.h>

7、算数 关系 赋值

8、k=0#flag=1

9、顺序 分支 循环

10、i=1#s=1.000 i=2#s=1.500 i=3#s=1.833 i=4#s=1.833 (补充:左对齐)

三、程序设计题

1~4题

#include<stdio.h>
int main(void)
{
	/*求整数均值(习题2.1)*/
	int a,b,c,d,sum=0;
	double average;
	printf("Enter a,b,c,d:");
	scanf("%d%d%d%d",&a,&b,&c,&d);
	sum=a+b+c+d;
	average=sum/4.0;
	printf("average=%.1lf\n",average);
	
	printf("\n");
	
	/*阶梯电价(习题2.2)*/
	double x,y;//x为用户月用电量,单位为千瓦每时。y为电费,单位 元。 
	printf("Enter x:");
	scanf("%lf",&x); 
	if(x<0){
		printf("Invaild Value!\n");
	}
	else if(x<=50){
		y=0.53*x;
		printf("y=%lf\n",y);
	}
	else if(x>50){
		y=0.53*50+(x-50)*0.58;
		printf("y=%lf\n",y);
	}
	
	printf("\n");
	
	/*序列求和(习题2.3)*/{
	int m,n,i;
	double sum=0;
	printf("Enter m,n(0<m<=n):");
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		sum+=i*i+1.0/i;
	}
	printf("∑=%lf\n",sum);}
	
	printf("\n");
	
	/*求交错序列的前n项和(习题2.4)*/{
	int i,n,flag=1;
	double sum=0;
	printf("Enter n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum+=(double)flag*i/(2*i-1);
		flag=-flag;
	}
	printf("sum=%lf\n",sum);}
	
	return 0;
} 

5题

#include<stdio.h>//习题2.5 平方根求和 
#include<math.h>
double sqrt(int n);
int main(void)
{
	int n,i;//或者把i定义为double类型 
	double sum=0;
	printf("Enter n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum+=sqrt(double(i));//可改为sum+=sqrt(i); 
	}
	printf("sum=%.2lf\n",sum);
	
	return 0;
}
double sqrt(int n)
{
	int i;
	double result=0;
	for(i=1;i<=n;i++)
	{
		result+=sqrt(i);
	}
	return result;
}

6题

#include<stdio.h>// 习题2.6 
double fact(int n)
{
	int i;
	double product=1;
	for(i=1;i<=n;i++)
	{
		product*=i;
	}
	return product;
}
int main(void)
{
	int n,e=0,i;
	printf("Enter n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		e+=fact(i);
	}
	printf("e=%d",e);
	
	return 0;
}

 

更多推荐

《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案