C语言答案29章.docx
《C语言答案29章.docx》由会员分享,可在线阅读,更多相关《C语言答案29章.docx(60页珍藏版)》请在冰豆网上搜索。
C语言答案29章
第2章习题参考答案
1.
#include
intmain(void)
{
intnum1,num2;
scanf("%d%d",&num1,&num2);
printf("%d+%d=%d\n",num1,num2,num1+num2);
printf("%d-%d=%d\n",num1,num2,num1-num2);
printf("%d*%d=%d\n",num1,num2,num1*num2);
printf("%d/%d=%d\n",num1,num2,num1/num2);
printf("%d%%%d=%d\n",num1,num2,num1%num2);
return0;
}
2.
#include
intmain(void)
{
doublecost,e;
scanf("%d",&repeat);
scanf("%lf",&e);
if(e<=50)
cost=0.53*e;
else
cost=0.53*50+(e-50)*0.58;
printf("cost=%.2f\n",cost);
return0;
}
3.
#include
intmain(void)
{
inti,n;
doublemypow,x;
scanf("%lf%d",&x,&n);
mypow=1;
for(i=1;i<=n;i++)
mypow=mypow*x;
printf("%.2f\n",mypow);
return0;
}
4.
#include
intmain(void)
{
inti,m,n;
doublesum;
scanf("%d%d",&m,&n);
sum=0;
for(i=m;i<=n;i++)
sum=sum+i*i+1.0/i;
printf("sum=%.6f\n",sum);
return0;
}
5.
#include
intmain(void)
{
intflag,i,n;
doubleitem,sum;
scanf("%d",&n);
sum=0;
flag=1;
for(i=1;i<=n;i++){
item=flag*1.0*i/(2*i-1);
sum=sum+item;
flag=-flag;
printf("sum=%.3f\n",sum);
return0;
}
6.
#include
#include
intmain(void)
{
intyear;
doubleloan,money,mypow,rate;
scanf("%lf%lf",&loan,&rate);
printf("yearmoney\n");
for(year=5;year<=30;year++){
mypow=pow(1+rate,12*year);
money=loan*rate*mypow/(mypow-1);
printf("year=%dmoney=%.0f\n",year,money);
}
return0;
}
7.
#include
#include
intmain(void)
{
inti,n;
doublesum;
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++){
sum=sum+pow(2,i);
}
printf("sum=%.0f\n",sum);
return0;
}
8.
#include
intmain(void)
{
inti,n;
doublesum;
doublefact(intn);
scanf("%d",&n);
sum=0;
for(i=0;i<=n;i++){
sum=sum+fact(i);
}
printf("sum=%.0f\n",sum);
return0;
}
doublefact(intn)
{
inti;
doubleproduct;
product=1;
for(i=1;i<=n;i++)
product=product*i;
returnproduct;
}
第3章习题参考答案
1.
#include
#include
intmain(void)
{
inta,b,c;
doublearea,s,perimeter;
scanf("%d%d%d",&a,&b,&c);
if((a+b>c)&&(b+c>a)&&(a+c>b)){
perimeter=a+b+c;
s=(a+b+c)*1.0/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%.2f,perimeter=%.2f\n",area,perimeter);
}
else
printf("Thesesidesdonotcorrespondtoavalidtriangle\n");
return0;
}
2.
#include
intmain(void)
{
intdecution;
doublerate,salary,tax;
printf("Enterthesalary:
");
scanf("%lf",&salary);
if(salary<=3500){rate=0;decution=0;}
elseif(salary<=5000){rate=0.03;decution=0;}
elseif(salary<=8000){rate=0.1;decution=105;}
elseif(salary<=12500){rate=0.2;decution=555;}
elseif(salary<=38500){rate=0.25;decution=1005;}
elseif(salary<=58500){rate=0.3;decution=2755;}
elseif(salary<=83500){rate=0.35;decution=5505;}
else{rate=0.45;decution=13505;}
tax=rate*(salary-3500)-decution;
printf("tax=%.0f\n",tax);
return0;
}
3.
#include
intmain(void)
{
intmile,time,cost;
scanf("%d%d",&mile,&time);
cost=0;
mile=mile+time/5;
if(mile<=3)
cost=10;
elseif(mile<=13)
cost=10+(mile-3)*2;
else
cost=10+10*2+(mile-13)*3;
printf("cost=%d\n",cost);
return0;
}
4.
#include
intmain(void)
{
intmark,n,i,sum;
doubleaverage;
intcounta,countb,countc,countd,counte;
printf("Entern:
");
scanf("%d",&n);
counta=countb=countc=countd=counte=sum=0;
for(i=1;i<=n;i++){
scanf("%d",&mark);
sum=sum+mark;
if(mark>=90)counta++;
elseif(mark>=80)countb++;
elseif(mark>=70)countc++;
elseif(mark>=60)countd++;
elsecounte++;}
}
average=sum*1.0/n;
printf("average=%.1f\n",average);
printf("A:
%d,B:
%d,C:
%d,D:
%d,E:
%d\n",counta,countb,countc,countd,counte);
return0;
}
5.
#include
intmain(void)
{
intyear;
for(year=2000;year<=2099;year++){
if((year%4==0&&year%100!
=0)||(year%400==0))
printf("%d\n",year);
}
return0;
}
第4章习题参考答案
1.
#include
intmain(void)
{
intx,sum;
printf("Inputintegers:
");
scanf("%d",&x);
sum=0;
while(x>0){
if(x%2==0)sum=sum+x;
scanf("%d",&x);
}
printf("Thesumoftheevennumbersis%d\n",sum);
return0;
}
2.
#include
#include
intmain(void)
{
inti;
doubleitem,s,x;
doublefact(intn);
scanf("%le",&x);
s=0;
item=x;
i=1;
while(fabs(item)>=0.00001){
item=pow(x,i)/fact(i);
s=s+item;
i++;
}
printf("s=%.2f\n",s);
return0;
}
doublefact(intn)
{
inti;
doubleresult=1;
for(i=1;i<=n;i++)
result=result*i;
returnresult;
}
3.
#include
intmain(void)
{
intcount,sum;
longin;
printf("Inputaninteger:
");
scanf("%ld",&in);
if(in<0)in=-in;
count=0;
sum=0;
while(in!
=0){
sum=sum+in%10;
in=in/10;
count++;
}
printf("count=%d,sum=%d\n",count,sum);
return0;
}
4.
#include
intmain(void)
{
inti,n,a,b,t;
floats;
printf("Inputn:
");
scanf("%d",&n);
a=2;b=1;s=0;
for(i=1;i<=n;i++){
s=s+a*1.0/b;
t=a;
a=a+b;
b=t;}
printf("s=%.2f\n",s);
return0;
}
5.
#include
intmain(void)
{
inti,n;
longinta,sn,tn;
printf("Inputa,n:
");
scanf("%ld%d",&a,&n);
sn=0;tn=0;
for(i=1;i<=n;i++){
tn=tn+a;
sn=sn+tn;
a=a*10;
}
printf("s=%ld\n",sn);
return0;
}
6.
#include
intmain(void)
{
intcount,fen1,fen2,fen5;
count=0;
for(fen5=19;fen5>0;fen5--)
for(fen2=49;fen2>0;fen2--){
fen1=100-5*fen5-2*fen2;
if(fen1>0){
count++;
printf("fen5:
%d,fen2:
%d,fen1:
%d\n",fen5,fen2,fen1);
}
}
printf("count=%d\n",count);
return0;
}
7.
#include
intmain(void)
{
inti,digit,number,sum;
for(i=1;i<=10000;i++){
number=i;
sum=0;
while(number!
=0){
digit=number%10;
number=number/10;
sum=sum+digit*digit*digit;
}
if(sum==i)printf("%d\n",i);
}
return0;
}
8.
#include
intprime(intn);
intmain(void)
{
inti,m;
intcount=0;
for(m=6;m<=100;m=m+2){
for(i=3;i<=m/2;i=i+2)
if(prime(i)&&prime(m-i)){
printf("%d=%d+%d",m,i,m-i);
count++;
if(count%5==0)printf("\n");
}
}
return0;
}
intprime(intn)
{inti,flag=1;
if(n==1)flag=0;
for(i=2;i<=n/2;i++)
if(n%i==0)flag=0;
returnflag;
}
9.
#include
intmain(void)
{
intdigit;
longin,temp,pow;
scanf("%ld",&in);
if(in<0)in=-in;
temp=in;
pow=1;
while(temp>10){
pow*=10;
temp/=10;
}
while(pow>=1){
digit=in/pow;
in=in%pow;
pow/=10;
printf("%-2d",digit);
}
printf("\n");
return0;
}
10.
#include
intprime(intn);
intmain(void)
{
intm,i;
scanf("%d",&m);
printf("%d=",m);
for(i=2;i!
=m;i++){
if(prime(i)){
if(m%i==0){
printf("%d*",i);
m=m/i;
i--;
}
}
else
continue;
}
printf("%d",i);
printf("\n");
return0;
intprime(intn)
{
inti;
intflag=1;
if(n==1)flag=0;
for(i=2;i<=n/2;i++)
if(n%i==0)flag=0;
returnflag;
}
11.
#include
intmain(void)
{
intm,n,j,k;
do{
scanf("%d",&m);
scanf("%d",&n);
}while(m<0||n<0);
j=m;
while(j%n!
=0)
j=j+m;
k=(m*n)/j;
printf("最小公倍数是%d,最大公约数是%d\n",j,k);
return0;
}
12.
#include
intmain(void)
{
inti;
doubledistance,height;
distance=100;
height=100;
for(i=1;i<=10;i++){
height=height*0.5;
distance=distance+2*height;
}
printf("distance=%.1f,height=%.1f\n",distance,height);
return0;
}
13.
#include
intmain(void)
{
inti,j;
for(i=1;i<=4;i++){
for(j=2*(4-i);j>0;j--)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++){
for(j=1;j<=2*i;j++)
printf("");
for(j=1;j<=2*(4-i)-1;j++)
printf("*");
printf("\n");
}
return0;
}
14.
#include
intmain(void)
{
inti,peach;
peach=1;
for(i=1;i<10;i++){
peach=2*peach+1;
}
printf("%d\n",peach);
}
第5章习题参考答案
1.
#include
intmain(void)
{
intsign(intx);
intx,y;
scanf("%d",&x);
y=sign(x);
printf("sign(%d)=%d\n",x,y);
return0;
}
intsign(intx)
{
inty;
if(x>0)y=1;
elseif(x==0)y=0;
elsey=-1;
returny;
}
2.
#include
inteven(intn);
intmain(void)
{
intn,sum;
scanf("%d",&n);
sum=0;
while(n>0){
if(even(n)==0)sum=sum+n;
scanf("%d",&n);
}
printf("Thesumoftheoddnumbersis%d.\n",sum);
}
return0;
inteven(intn)
{
inty;
if(n%2==0)
y=1;
else
y=0;
returny;
}
3.
#include"stdio.h"
#include"math.h"
doublefuncos(doublee,doublex);
intmain(void)
{
doublee,sum,x;
scanf("%le%le",&e,&x);
sum=funcos(e,x);
printf("cos=%f\n",sum);
return0;
}
doublefuncos(doublee,doublex)
{
intflag,i;
doubleitem,sum,tmp,power;
flag=1;
power=1;
tmp=1;
i=0;
item=1;
sum=0;
while(fabs(item)>=e){
item=flag*power/tmp;
sum=sum+item;
power=power*x*x;
tmp=tmp*(i+1)*(i+2);
flag=-flag;
i=i+2;
}
returnsum;
}
4.
#include"stdio.h"
#include"math.h"
intmain(void)
{
intcount,i,m,n,sum;
intprime(intm);
scanf("%d%d",&m,&n);
count=sum=0;
for(i=m;i<=n;i++)
if(prime(i)!
=0){
count++;
sum=sum+i;
}
printf("Count=%d,sum=%d\n",count,sum);
return0;
}
intprime(intm)
{
intk,i;
if(m==1)return0;
k=sqrt(m);
for(i