C语言入门必背:18个经典程序(含9*9口诀/兔子数列)

网安智编 厦门萤点网络科技 2026-04-26 00:12 9 0
c语言入门经典必背18个程序.txt c语言入门经典必背18个程序 1 、 /* 输出 9*9 口诀。共 9 行 9 列, i 控制行, j 控制列。 */ # stdio.h main() {int i,j,; for (i=1;i10;...

c语言入门经典必背18个程序.txt c语言入门经典必背18个程序 1 、 /* 输出 9*9 口诀。共 9 行 9 列, i 控制行, j 控制列。 */ # stdio.h main() {int i,j,; for (i=1;i10;i++) { for(j=1;j10;j++) { =i*j; (%d*%d=%-3d,i,j,);/*-3d 表示左对齐,占 3 位 */ } (\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++) { (ld ld,f1,f2); if(i%2 0) (\n);/* 控制输出,每行四个 */ f1=f1+f2; /* 前两个月加起来赋值给第三个月 */ f2=f1+f2; /* 前两个月加起来赋值给第三个月 */ } } 3 、 /* 判断 101-200 之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt( 这个数 ) ,如果能被整除, 则表明此数不是素数,反之是素数。 */ # math.h main() { int m,i,k,h=0,leap=1; (\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 是素数 */ {(%-4d,m);h++;if(h 0) (\n); } leap=1; } (\nThe total is %d,h); } 4 、 /* 一个数如果恰好等于它的因子之和,这个数就称为 “ 完数 ” 。例如 6=1 + 2第 1 页c语言入门经典必背18个程序.txt + 3. 编程 找出 1000 以内的所有完数。 */ main() { int k

10

; int i,j,n,s; for(j=2;j1000;j++) { n=-1; s=j; for(i=1;ij;i++) {if((j%i) 0) { n++; s=s-i; k

=i; } } if(s 0) {(%d is a : ,j); for(i=0;in;i++) (%d,,k

); (%d\n,k

); } } } 5 、 /* 下面程序的功能是将一个 4 × 4 的数组进行逆时针旋转 90 度后输出,要求原始 数组的数据随机输入,新数组以 4 行 4 列的 方式输出, 请在空白处完善程序。 */ main() { int a

,b

,i,j; /*a 存放原始数组数据, b 存放旋转后数组数据 */ (input 16 : ); /* 输入一组数据存放到数组 a 中,然后旋转存放到 b 数组中 */ for(i=0;i4;i++) for(j=0;j4;j++) { scanf(%d,a

); b

3-j

=a

; }(array b:\n); for(i=0;i4;i++) { for(j=0;j4;j++) (%6d,b

); (\n); } } 6 、 /* 编程打印直角杨辉三角形 */ main() {int i,j,a

; for(i=0;i=5;i++) {a

=1;a

=1;} for(i=2;i=5;i++) for(j=1;j=i-1;j++) a

=a

i-1

+a

i-1

j-1

;第 2 页c语言入门经典必背18个程序.txt for(i=0;i=5;i++) {for(j=0;j=i;j++) (%4d,a

); (\n);} } 7 、/* 通过键盘输入 3 名学生 4 门课程的成绩, 分别求每个学生的平均成绩和每门课程的平均成绩。 要求所有成绩均放入一个 4 行 5 列的数组中,输入时同一人数据间用空格 , 不同人用回 车 其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均 分。 */ # stdio.h # .h main() { float a

,sum1,sum2; int i,j; for(i=0;i3;i++) for(j=0;j4;j++) scanf(%f,a

); for(i=0;i3;i++) { sum1=0; for(j=0;j4;j++) sum1+=a

; a

=sum1/4; } for(j=0;j5;j++) { sum2=0; for(i=0;i3;i++) sum2+=a

; a

c语言经典程序练习题_c语言入门经典必背18个程序_c语言入门经典必背18个程序

=sum2/3; }for(i=0;i4;i++) { for(j=0;j5;j++) (%6.2f,a

); (\n); } } 8 、 /* 完善程序,实现将输入的字符串反序输出, 如输入 输出 。 */ # .h main() { char c

200

,c1; int i,j,k; (Enter a : ); scanf(%s,c); k=(c); for (i=0,j=k-1;ik/2;i++,j--) { c1=c

;c

=c

;c

=c1; } (%s\n,c); } 指针法: void (char *s) {int i,j,k;第 3 页c语言入门经典必背18个程序.txt char t; k=(s); for(i=0,j=k-1;ik/2;i++,j--) { t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; } } main() { FILE *fp; char str

200

,*p,i,j; if((fp=fopen(p9_2.out,w)) NULL) { ( open the file\n); exit(0); } (input str:\n); gets(str); ( “ \n%s ” ,str); (fp, “ %s ” ,str); (str); ( “ \n%s ” ,str); (fp, “ \n%s ” ,str); (fp);} 9 、 /* 下面程序的功能是从字符数组 s 中删除存放在 c 中的字符。 */ # stdio.h main() { char s

80

,c; int j,k; (\ a : ); gets(s); (\ a : ); c=( ); for(j=k=0;s

!= \0;j++) if(s

!=c) s

k++

=s

= \0; (\n%s,s); } 10 、 /* 编写一个 void sort(int *x,int n) 实现将 x 数组中的 n 个数据从大到小 排序。 n 及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件 p9_1.out 中 */ #.h void sort(int *x,int n) { int i,j,k,t; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(x

) k=j; if(k!=i) { t=x

; x

=x

; x

=t; } }第 4 页c语言入门经典必背18个程序.txt } void main() {FILE *fp; int *p,i,a

10

; fp=fopen(p9_1.out,w); p=a; (Input 10