C语言经典例题和答案 .
作业一一、 求一个任意边长的矩形面积。#include <stdio.h>void main()int w,h,sum;scanf("%d%d",&w,&h);sum=w*h;printf("area=%dn",sum);二、 求一个任意半径的圆的面积及周长。#define PI 3.14159#include <stdio.h>void main()float r,area,c;scanf("%f",&r);area=PI*r*r;c=2*PI*r;printf("area=%fncircle=%fn",area,c);三、 已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。#include <stdio.h>void main() int w,y,z,r; w=5; y=4; z=2; r=w*y/z; printf("%5d",r);作业二一、 从键盘上输入三个数,求出其中的最大值,并输出。#include <stdio.h>void main()int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("max=%dn",max);二、 求sin300。+sin600+cos300+cos600之和。(注意:30*3.14159/180)#include <stdio.h>#define PI 3.14159#include <math.h>void main()float a,b,sum;a=30*PI/180;b=60*PI/180;sum=sin(a)+sin(b)+cos(a)+cos(60);printf("total=%fn",sum);三、 比较两个数的大小。如果x大于y,则输出:x>y,否则输出:x<y。#include <stdio.h>void main()int x,y;scanf("%d,%d",&x,&y);if(x>y) printf("x>yn");else printf("x<yn"); 作业三一、 输入a、b、c三个值,按从小到大排序输出。#include <stdio.h>void main()int a,b,c,t;scanf("%d%d%d",&a,&b,&c); if(a>b) t=b; b=a; a=t; if(a>c) t=a; a=c; c=t; if(b>c) t=b;b=c;c=t; printf("%3d%3d%3dn",a,b,c);.二、 求自然数110之和。#include <stdio.h>void main()int i,sum;i=1;sum=0;while(i<=10)sum=sum+i;i+;printf("sum=%dn",sum);三、 输入10个整数,统计出正数之和以及负数之和。(求奇数之和以及偶数之和)#include <stdio.h>void main()int sum1=0,sum2=0,i,x;i=1;while(i<=10) scanf("%d",&x); if(x%2=0) sum1=sum1+x; else sum2=sum2+x; i+;printf("sum1=%dnsum2=%dn",sum1,sum2);作业四一、 输入一个06的整数,转换成星期输出。#include <stdio.h>main() int a; scanf("%d",&a); switch(a) case 0: printf("Sunday");break; case 1: printf("Monday");break; case 2: printf("Tuesday");break; case 3: printf("Wednesday");break; case 4: printf("Thursday");break; case 5: printf("Friday");break; case 6: printf("saturday");break; default: printf("I am sorry.You are wrong.n");.二、 输入一个整数,将各位数字反转后输出。如:输入365,则输出显示为563。#include <stdio.h>void main()int x,r;scanf("%d",&x);printf("conver is:");while(x!=0) r=x%10; printf("%d",r); x=x/10; printf("n"); 三、 输入一个整数,求出它的所有因子。#include <stdio.h>void main()int x,i;scanf("%d",&x);for(i=1;i<=x;i+)if(x%i=0)printf("%3d",i);作业五一、 求100 200之间的素数。#include <stdio.h>#include <math.h>void main()int j=0,x,n,i;for(x=100;x<=200;x+) n=sqrt(x); for(i=2;i<=n;i+) if(x%i=0)break; if(i>n) printf("%5d",x); j+; if(j%5=0)printf("n");二、 编程输出三角形的99乘法表。#include <stdio.h>void main()int i,j;for(i=1;i<10;i+)for(j=1;j<=i;j+)printf("%d*%d=%d ",i,j,i*j);printf("n");三、 求任意二个数的最大公约数。#include <stdio.h>main() int a,b,m,n,q; scanf("%d%d",&m,&n); a=m; b=n; if(a>b) int z; z=a; a=b; b=z; do q=b%a; b=a;a=q; while(q!=0); printf("%dn",b);作业六一、 利用循环语句求 (直到第100项的和)。#include <stdio.h>void main() int i,t=1; float s=1,p=0,n=1; for(i=1;i<=100;i+) p=p+s; n=n+2; t=-t; s=t/n; printf("%fn",p);二、 编写求 S=。#include <stdio.h>void main() int x,y=0,n,i; for(n=1;n<=5;n+) x=1; for(i=1;i<=n;i+) x=x*i; y=y+x; printf("%dn",y);三、 利用公式求 cosx 的近似值(精度为10-6):#include <stdio.h>#include <math.h>void main() float n=1,t=1,pi=0,s=1,x,i=1; scanf("%f",&x); while(fabs(t)>=1e-6) pi+=t; n=n*i*(i+1); s=-s*x*x; i+; t=s/n; printf("%f",pi);作业七一、 用选择法对10个整数排序(由大到小)。#include <stdio.h>void main(void) int a10,i,j,t; for(i=0;i<10;i+) scanf("%d",&ai); for(i=0;i<9;i+) for(j=0;j<9-i;j+) if(aj>aj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i<10;i+) printf("%6d",ai); printf("n");二、 输入 10个学生的一门课成绩,用一维数组存放其成绩,统计并输出不及格人数及其百分比。#include <stdio.h>void main(void) int i,count=0; float score10,percent; for(i=0;i<10;i+) scanf("%d",&ai); for(i=0;i<10;i+) if(scorei<60) count+; percent=(float)count/10; printf("%d,%5.1f",count,percent); 三、 编程实现N阶方阵转置。#include <stdio.h>void main() int a33,b33,i,j; for(i=0;i<3;i+) for(j=0;j<3;j+) scanf("%d",&aij); for(i=0;i<3;i+) for(j=0;j<3;j+) bji=aij; printf("n"); for(i=0;i<3;i+) for(j=0;j<3;j+) printf("%4d",bij); printf("n"); 作业八一、 把输入的一个字符串按逆序重新排序其字符,并输出。#include <stdio.h>#include <string.h>void main() char a80,k; int i,j; gets(a); for(i=0,j=strlen(a)-1;i<j;i+,j-) k=ai; ai=aj; aj=k; puts(a);