void main() { prin">

C语言课后答案

  • 格式:doc
  • 大小:190.00 KB
  • 文档页数:47

第二章1.#include <stdio.h>void main(){printf("Programming in C is fun!\n"); }2.#include <stdio.h>void main(){printf("+---+---+\n");printf("| | |\n");printf("| | |\n");printf("+---+---+\n");}3.#include <stdio.h>void main(){int f;float c;f=150;c=5.*(f-32)/9.;printf("f=%d,c=%.2f\n",f,c);}4.#include <stdio.h>void main(){int a,b;scanf("%d%d",&a,&b);printf("%d+%d=%d\n",a,b,a+b);printf("%d-%d=%d\n",a,b,a-b);}5.#include<stdio.h>#include<math.h>void main(){float x,y;scanf("%f",&x);if(x<0)y=x*x+2*x+1./x;elsey=sqrt(x);printf("x=%.3f,y=%.3f\n",x,y);}6.#include<stdio.h>void main(){float x;int y;scanf("%f",&x);if(x>0)y=1;else if(x==0)y=0;elsey=-1;printf("x=%.3f,y=%d\n",x,y);}7.#include<stdio.h> /*(书上公式有误)*/#include<math.h>void main(){float rate,accrual;int money,year;printf("money year rate=");scanf("%d%d%f",&money,&year,&rate);accrual=money*pow(1+rate,year)-money;printf("accrual=%.2f\n",accrual);}8.#include<stdio.h>void main(){int f;float c;printf(" f c\n");for(f=10;f<=20;f++){c=5.*(f-32)/9.;printf("%3d%8.2f\n",f,c);}}9.#include<stdio.h>void main(){int s,i;s=0;for(i=10;i<=20;i++)s=s+i;printf("10+11+...+20=%d\n",s);}10.#include<stdio.h>void main(){int i;float s;s=0;for(i=5;i<=15;i++)s=s+1./i;printf("1/5+1/6+...+1/15=%f\n",s); }11.#include<stdio.h>void main(){int i,n,flag;float s,item;s=0;flag=1;printf("n=");scanf("%d",&n);for(i=1;i<=n;i++){item=flag*1.0/(3*i-2);s=s+item;flag=-flag;}printf("s=%f\n",s);}12.#include<stdio.h>double fact(int);void main(){int i,m,n;double f1,f2;f1=1;f2=1;printf("m n=");scanf("%d%d",&m,&n);for(i=1;i<=m;i++)f1=f1*i;for(i=1;i<=n;i++)f2=f2*i;printf("s=%f\n",f1+f2);}13.#include<stdio.h>double mypow(double,int);void main(){int n,i;double y=1,x=4.1;printf("n=");scanf("%d",&n);for(i=1;i<=n;i++)y=y*x;printf("s=%f\n",y);}#include<stdio.h>double fact(int);void main(){int m,n;printf("m n=");scanf("%d%d",&m,&n);printf("s=%f\n",fact(m+n)/(fact(m)+fact(n))); }double fact(int n){int i;double f;f=1;for(i=1;i<=n;i++)f=f*i;return f;}15.#include<stdio.h>double mypow(double,int);void main(){int n;printf("n=");scanf("%d",&n);printf("s=%f\n",mypow(4.1,n));}double mypow(double x,int n){int i;double f;f=1;for(i=1;i<=n;i++)f=f*x;return f;}16.#include<stdio.h>int sign(double);void main(){double x;printf("x=");scanf("%lf",&x);printf("sign(%.3f)=%d\n",x,sign(x));}int sign(double x){int y;if(x>0)y=1;else if(x==0)y=0;else y=-1;return y;}#include<stdio.h>float ctof(float);void main(){int begin,end,i;printf("begin end=");scanf("%d%d",&begin,&end);printf("celsius fahr\n");for(i=begin;i<=end;i=i+5)printf("%3d%12.2f\n",i,ctof(i));}float ctof(float c){return 32+c*9.0/5.0;}实验2.补充#include<stdio.h>#include<math.h>void main(){float a,b,c,x1,x2;printf("input a,b,c: \n");scanf("%f%f%f",&a,&b,&c);if(b*b-4*a*c>=0){x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);printf("x1=%.4f,x2=%.4f\n",x1,x2);}elseprintf("No real root\n");}实验4.补充#include<stdio.h>void main(){int n,t,i,c;printf("n=");scanf("%d",&n);c=0;for(i=1;i<=n;i++){scanf("%d",&t);if (t%2==0)c++;}printf("count=%d\n",c);}实验1.改错1:# include <stdio.h>void main( ) /*main输入错误*/{printf("*************\n");printf(" Welcome\n"); /*缺少;*/ printf("*************\n"); /*缺少"*/ }改错2:#include<stdio.h>main(){int a; /*变量必须先定义*/scanf("%d",&a);printf("%d",a*a); /*大小写有别,将A改为a*/}实验2.改错1:#include <stdio.h> /*改,为.*/void main(){int x,y; /*要定义x*/scanf("%d",&x); /*要输入x*/y=x*x;printf("%d=%d*%d\n", y,x,x); /* 输出(注释缺少结束,输出缺少表达式,格式缺少\n)*/printf("%d*%d=%d\n", x,x,y);}改错2:# include <stdio.h>void main( ){float x,y; /*y未定义*/printf("input x: \n");scanf("%f", &x); /* 多了=,少了&*/if(x == 10) /*判断相等用==*/y = 1 / x; /*缺少;*/else if (x != 10) /*缺少if*/y = x;printf("f(%.2f) = %.1f\n", x, y); /* 少了参数间的分隔符逗号,将数1错打成了字母l*/ }实验3.改错/* 1.for中各表达式应采用分号间隔2.lower及upper的值应使用输入获得3.循环体应非空,因此应去掉for()后的分号4.循环体既要计算,又要输出,应采用复合语句5.5/9结果为0,应改为5./9.*/#include <stdio.h>void main( ){int lower, upper;double celsius, fahr; /* 定义2个double型变量,celsius表示摄氏度,fahr表示华氏度*/ scanf("%d%d",&lower,&upper); /* 变量upper 给定转换范围的上限*/printf("fahr celsius\n"); /* 显示表头*//* 温度转换*/for (fahr = lower ; fahr <= upper; fahr ++){celsius = 5. /9. * (fahr - 32.0);printf("%3.0f %6.1f\n", fahr, celsius); }}实验4.改错#include <stdio.h>double fact(int n); /*缺少;*/void main( ){int i;double sum;sum=0; /*缺少赋初值*/for (i = 1 ; i <= 10; i++) /*改<为<=*/sum = sum + fact(i);prin tf("1!+2!+…+10!= %f\n", sum);}double fact(int n) /*多了;*/{int i;double result;result=1; /*缺少赋初值*/for (i = 1 ; i <=n; i++)result=result*i; /*应使用result=result*i,赋值号左边不能用表达式*/ return result;}第三章1.#include<stdio.h>void main(){int i,letters,enters,digits,others;char c;letters=enters=digits=others=0;for (i=1;i<=15;i++){c=getchar();if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters++;else if(c=='\n')enters++;else if(c>='0'&&c<='9')digits++;elseothers++;}printf("letters=%d,enters=%d,digits=%d,othersle=%d\n",letters,enters,digits,others); }2.#include<stdio.h>void main(){int choice,i;float price;for(i=1;i<=5;i++){printf("[1] apples\n");printf("[2] pears\n");printf("[3] orangers\n");printf("[4] grapes\n");printf("[0] Exit\n");printf("Enter choice:");scanf("%d",&choice);if(choice==0)break;switch(choice){case 1:price=3.0;break;case 2:price=2.5;break;case 3:price=4.1;break;case 4:price=10.2;break;default:price=0.0;break;}printf("price=%0.1f\n",price);}printf("Thanks\n");}3.#include<stdio.h>void main(){int score;scanf("%d",&score);if(score<60)printf("Fail\n");elseprintf("Pass\n");}4.#include<stdio.h>#include<math.h>void main(){float a,b,c,area,perimeter,s;scanf("%f%f%f",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){perimeter=a+b+c;s=perimeter/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("perimeter=%.2f,area=%.2f\n",perimeter,area); }elseprintf("These sides do not correspond to triangle\n"); }5.#include<stdio.h>#include<math.h>void main(){int a,b,c,d,min;scanf("%d%d%d%d",&a,&b,&c,&d); min=a;if(b<min)min=b;if(c<min)min=c;if(d<min)min=d;printf("min=%d\n",min);} 或:#include<stdio.h>#include<math.h>void main(){int a,i,min;scanf("%d",&a);min=a;for(i=1;i<=3;i++){scanf("%d",&a);if(a<min)min=a;}printf("min=%d\n",min); }6.#include<stdio.h>void main(){int rate;float salary,tax;printf("input salary:\n");scanf("%f",&salary);if(salary<=850)rate=0;else if(salary<=1350)rate=5;else if(salary<=2850)rate=10;else if(salary<=5850)rate=15;elserate=20;tax=rate*(salary-850)/100;printf("tax=%.2f\n",tax);}补充:#include<stdio.h>void main(){int i,n,t,sum,max;float f;scanf("%d",&n);scanf("%d",&t); /*先输入第1个*/sum=t;max=t;for(i=2;i<=n;i++){scanf("%d",&t); /*再输入n-1个*/sum=sum+t;if(t>=max)max=t;}f=1.0*sum/n;printf("max=%d,average=%.2f",max,f);}改错:#include<stdio.h>void main() /*去掉;*/{int a,b,c,t; /*将float改为int*/printf("a,b,c="); /*加上;*/scanf("%d%d%d",&a,&b,&c); /*更改右引号位置*/if(a>b){t=a;a=b;b=t; /*更改两数交换的语句组*/ }if(a>c){t=a;a=c;c=t; /*更改两数交换的语句组*/ }if(b>c){t=b;b=c;c=t; /*更改两数交换的语句组*/ }printf("%d<=%d<=%d\n",a,b,c);}第四章1.#include<stdio.h>main(){float eps,s,item;int i,flag;scanf("%f",&eps);s=0;i=1;flag=1;do{item=1./i;s=s+flag*item;i=i+3;flag=-flag;}while(item>=eps); printf("%f",s);}2.#include<stdio.h>main(){int n,s;s=0;scanf("%d",&n);while(n>0){if(n%2==0)s=s+n;scanf("%d",&n);}printf("%d",s);}3.#include<stdio.h>main(){int n,i,j;float e,item;e=1.;scanf("%d",&n);for(j=1;j<=n-1;j++){item=1.;for(i=1;i<=j;i++)item=item*i;e=e+1/item;}printf("%.2f",e);}4.#include<stdio.h> double fact(int);double mypow(double,int); main(){float s,item,x;int i;scanf("%f",&x);s=0;i=1;do{item=mypow(x,i)/fact(i);s=s+item;i++;}while(item>=1.e-5);printf("%f",s);}double fact(int n) /*求阶乘*/{int i;double t;t=1;for(i=1;i<=n;i++)t=t*i;return t;}double mypow(double x,int n) /*求x的n次幂*/ {int i;double t=1;for(i=1;i<=n;i++)t=t*x;return t;}5.略,类似于上一章补充题6.#include<stdio.h>main(){int n,s,t;scanf("%d",&n);s=0;t=0;do{t++;s=s+n%10;n=n/10;}while(n>0);printf("count=%d,sum=%d\n",t,s);}7.8.#include<stdio.h>void main(){int a,n,i,item,s;printf("a,n=");scanf("%d%d",&a,&n);s=item=0;for(i=1;i<=n;i++){item=item*10+a;s=s+item;}printf("s=%d\n",s);}9.10.#include<stdio.h>#include<math.h>int prime(int);main(){int m,n,count=0,sum=0,i;scanf("%d%d",&m,&n);for(i=m;i<=n;i++){if(prime(i)){sum=sum+i;count++;}}printf("count=%d,sum=%d\n",count,sum); }int prime(int n){int i;if(n<2)return 0;for(i=2;i<=sqrt(n);i++)if (n%i==0)break;if(i>sqrt(n)) return 1;else return 0;}11.12.#include<stdio.h>main(){int n,i,t,s;for(i=1;i<1000;i++){n=i;s=0;while(n!=0){t=n%10;s=s+t*t*t;n=n/10;}if(s==i)printf("%d\n",s);}}13.#include<stdio.h>#include<math.h>int prime(int);main(){int n,a,b,i,j,count=0;for(n=6;n<=100;n=n+2)for(a=3;a<=n/2;a=a+2){for(i=2;i<=sqrt(a);i++)if(a%i==0)break;if(i>sqrt(a)){b=n-a;for(j=2;j<=sqrt(b);j++)if(b%j==0)break;if(j>sqrt(b)){count++;printf("%5d=%2d+%2d",n,a,b);if(count%5==0)printf("\n");break;}}}}或:#include<stdio.h>#include<math.h>int prime(int);main(){int n,a,b,i,j,count=0;for(n=6;n<=100;n=n+2)for(a=3;a<=n/2;a=a+2){b=n-a;if(prime(a)&&prime(b)){count++;printf("%5d=%2d+%2d",n,a,b);if(count%5==0)printf("\n");break;}}printf("\n");}int prime(int n){int i;if(n<2)return 0;for(i=2;i<=sqrt(n);i++)if (n%i==0)break;if(i>sqrt(n)) return 1;else return 0;}14.15.#include<math.h>#include<stdio.h>int prime(int n);void main(){int n,i,t;printf("n=");scanf("%d",&n);if(prime(n))printf("cannot decompound\n");else{printf("%d=",n);while(t<=n/2){if(n%t==0){printf("%d*",t);n=n/t;}elset++;}}printf("%d\n",n);}int prime(int n){int i,m;if(n<2)return 0;m=sqrt(n);for(i=2;i<=m;i++)if(n%i==0)break;if(i>m)return 1;else return 0;}16.#include<stdio.h>main(){int m,n,r,t; /*当m,n较大时,可将t定义为long类型*/ scanf("%d%d",&m,&n);t=m*n;r=m%n;while(r!=0){m=n;n=r;r=m%n;}printf("%d,%d\n",n,t/n);}17.第1次高度为h=100,落地经过s=h。