C 语言必背 18 个经典程序 1、/*输出 9*9 口诀。共 9 行 9 列,i 控制行,j 控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占 3 位*/ } printf("\n");/*每一行后换行*/ } } 2、/*古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三 个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列 1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } 3、/*判断 101-200 之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/ #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) {leap=0;break;} if(leap) /*内循环结束后,leap 依然为 1,则 m 是素数*/ {printf("%-4d",m);h++; if(h%10==0) printf("\n"); } leap=1; } printf("\nThe total is %d",h); } 4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3.编程 找出 1000 以内的所有完数。*/ main() { static int k[10]; int i,j,n,s; for(j=2;j<1000;j++) { n=-1; s=j; for(i=1;i #include main() { float a[4][5],sum1,sum2; int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%f",&a[i][j]); for(i=0;i<3;i++) { sum1=0; for(j=0;j<4;j++) sum1+=a[i][j]; a[i][4]=sum1/4; } for(j=0;j<5;j++) { sum2=0; for(i=0;i<3;i++) sum2+=a[i][j]; a[3][j]=sum2/3; } for(i=0;i<4;i++) { for(j=0;j<5;j++) printf("%6.2f",a[i][j]); printf("\n"); } } 8、/*完善程序,实现将输入的字符串反序输出, 如输入 windows 输出 swodniw。*/ #include main() { char c[200],c1; int i,j,k; printf("Enter a string: "); scanf("%s",c); k=strlen(c); for (i=0,j=k-1;i main() { char s[80],c; int j,k; printf("\nEnter a string: "); gets(s); printf("\nEnter a character: "); c=getchar( ); for(j=k=0;s[j]!= '\0';j++) if(s[j]!=c) s[k++]=s[j]; s[k]= '\0'; printf("\n%s",s); } 10、/*编写一个 void sort(int *x,int n)实现将 x 数组中的 n 个数据从大到小 排序。n 及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件 p9_1.out 中*/ #include void sort(int *x,int n) { int i,j,k,t; for(i=0;ix[k]) k=j; if(k!=i) { t=x[i]; x[i]=x[k]; x[k]=t; } } } void main() {FILE *fp; int *p,i,a[10]; fp=fopen("p9_1.out","w"); p=a; printf("Input 10 numbers:"); for(i=0;i<10;i++) scanf("%d",p++); p=a; sort(p,10); for(;p