C语言必背18个经典程序_第1页
C语言必背18个经典程序_第2页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言必背18个经典程序1、八输出9*9口诀。共9行9列,i控制行,j控制列。*/#includcustdio.hMmain()int ijjesult;for (i=l;i10:i+) for(j=l;j10;j+)result=i*j; printf(H%d*%d=%-3d,iJ,result)y*.3d表示左对齐,占3位*7 printf(HnH);/*每一行后换行*/2、八古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三 个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?兔子的规律为数列1,123,5,8,13,21.*/main()long

2、 fl,f2;int i;fl=f2=l;for(i=l;i=20;i+) printf(n%121d%121dM,fLf2);if(i%2=0) printf(Mirr)y*控制输出,每行四个*/fl=fl+f2; /*前两个月加起来赋值给第三个月*/f2=fl+f2; /*前两个月加起来赋值给第三个月*/3、八判断101-200之间有多少个素数,并输出所有素数及素数的个数。程序分析:判断素数的方法:用一个数分別去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/include,math.hMniain()int m.i,kh=0.1cap=l;printf(Hn

3、u);for(m= 101:m=200;m+) k=sqrt(m+l);for(i=2;i=k;i+)if(m%i=0)Ieap=O:brcak:)if(leap)/*内循环结朿后,leap依然为1,则m是素数*/printf(n%-4d,m);h+:if(h%10=0)printf(MnH);leap=l;printf(nThe total is %d,h);4、戶一个数如果恰好等于它的因子之和,这个数就称为“完数 S 例如6=14-2+3.编程找出1000以内的所有完数。*/main()static int k10;int i,j,n,s;for(j=2;j1000;j+)1=1;S=j;

4、for(i=l;ij;i+)if(j%i)=O) n卄;s=s-i;kn=i;if(s=O)printf(M%d is a wanshu:HJ);for(i=0;in;i+)printfC%d;ki);printf(M%dnkn);5、戶下而程序的功能是将一个4X4的数组进行逆时针旋转90度后输出,要求原始数组的 数据随机输入,新数组以4行4列的方式输出,请在空白处完善程序。*/inain() int a44.b44,i,j;/*a存放原始数组数据,b存放旋转后数组数据*/printf(Hinput 16 numbers:M);/*输入一组数据存放到数组a中,然后旋转存放到b数组中*/for(

5、i=0;i4;i+)for(j=0;j4;j+) scanf(H%d,&aij);b3-ji=aiUJ;printf( array b:nH);for(i=0;i4;i+) for(j=0;j4;j卄)printf(,fnH);6、戶编程打印直角杨辉三角形勺inain()int i,j,a66;for(i=0;i=5;i+)a(ii=l;aiO=l;for(i=2;i=5;i+)for(j=l;j=i-l;j+)aiUl=ai-lU+ai-lU-l;for(i=0;i=5;i+)(for(j=0;j=i;j+)printf(,%4d,aij);printf(HnM);7、戶通过键盘输入

6、3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车 其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均 分。*/#includc #includc main() float a45,suml,sum2;int i,j;for(i=0;i3;i+)for(j=0;j4;j+)scanf(H%f&aij);for(i=0;i3;i+) sum 1=0;for(j=0;j4;j+)suml+=aij;ai4=suml/4;for(j=0;j5;j+)sum2=0:fo

7、r(i=0;i3;i+)sum2+=a|ij;a3j=sum2/3;for(i=0;i4;i+)for(j=0;j5;j卄)printf(M%6.2fai|j);printf(,nH);8、戶完善程序,实现将输入的字符串反序输出, 如输入windows输出swodniw, */ includemain() char c2OO.cl;int i,j,k;printf(HEnter a string: ”);scanf(,%s,c);k=strlen(c);for (i=OJ=k-l ;ik/2;i+J-) cl=ci;ci=cU;cj=cl; printf(M%snH,c);指针法:void i

8、nvert(char *s)int i,j,k;char t;k=strlen(s);for(i=Oj=k-l ;ivk/2:i+.j-) t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; ) niain() FILE *fp;char str2OO,*p4j;if(fp=fopcn(,p9_2.outH/,w,)=NULL) printf(Mcannot open the filcn”);exit(O);printf(Hinput str:nM);gets(str);pnntff n%sstr);fpniitf(fy/%sstr);invert(str);pnntfCn%

9、s:str);fnntf(仗n%s:str);fclose(fp);)9、 八下而程序的功能是从字符数组s中删除存放在c中的字符。*/#includc niain() char s80,c;int j,k;printf(MiiEnter a string:H);gets(s);printf(MnEnter a character:H);c=getchar();for(j=k=0;sj!=、0为+)if(sj!=c)sk+=sj;sk=printf(Hn%s,s);)10、 /*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入

10、。将结果显示在屏幕上并输出到文件p9_l.out中*/#includevoid sort(int *x,int n)intfor(i=0:in-l;i+)k=i;for(j=i+l;jxk) k=j;if(k!=i)xi=xk;xk=t:void inain()FILE *fp;int *pXa10;fp=fopen(Hp9_l.outM;,wH);p=a;printf(NInput 10 numbers:”);for(i=0:i10;i+)scanf(,%d,p+);p=a;sort(pJO);for(:px) ai+l=ai; i-;/*将比x大的数往后移动一个位置=*7a+i=x;j+;

11、/*插入X后元素总个数增加*/for(i=l;i=j;i+) printfC%8cr,ai);printf(AnH);12、/*编写函数replace(char *s,char cl,char c2)实现将s所指向的字符串中所有字符cl用c2替换, 字符串、 字符cl和c2均在主函数中输入, 将原始字符串和替换后的字符串显 示在屏幕上,并输岀到文件plO_2.out中*/# includereplace(char *s,char cl,char c2) while(*s!=r) if(*s=cl)*s=c2;s+;main() FILE *fp;char strflOOJ.a.b;if(fp=

12、fopen(HplO_2.out,MwM)=NULL) printf(Hcannot open the filenM);exit(O);printfCEnter a string:nH);gets(str);printf(HEnter a&b:nH);scanf(M%c,%cH.&a、&b);printf(M%sn,str);fprintf(fp,N%snM,str);replace(str.a.b);printf(The new string is-%sn,str);fprintf(fp,HThe new string is-%sn*str);fclose(fp);1

13、3、 /*在一个字串si中查找一子串s2,若存在则返回子串在主串中的起始位置,不存在则返回-1。*/main()char sl6=,thisis,;char s25=,isN;printf(H%dnH,search(sl ,s2);system(HpauseM);int search(char sl.char s2J)int i=OJJen=strlen(s2);while(sli)for(j=0;j=len)return i;else i+;return -1;14、 /*用指针变量输出结构体数组元素。*/struct studentint num:char *name;char sex;i

14、nt age;stu5=1001/lihuaVF18, 1002;,liuxingH:M19)41003huangkc:FJ9, 1004,fcng shoiTTF,19, 1005JWangming;M;18;main()(int i;struct student *ps;printf(,NumtNametttSextAgetnH);戶用指针变量输岀结构体数组元素。*/for(ps=stu;psnum.ps-name.ps-sex,ps-age);戶用数组下标法输岀结构体数组元素学号和年龄。*/for(i=0;inunLp-name.p-age);p=p-next;whilc(p!=NULL

15、);16、 /*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读 完全相同的字符串。*/#include # include # includemain() char s100;int i,j,n;printf(输入字符串:n”);gets;n=strlen(s);for(i=0.j=n-l ;i=j) printf(是回文串n);elseprintf(u不是回文串n”);17、 /*冒泡排序,从小到大,排序后结果输岀到屏幕及文件myf2.out*/# includevoid fun(int a,int n)int ijj;for(i=0;i=n-l;i+)for(j=0

16、;jaU+1 ) t=aU;aUJ=aj+1 ;aj+1 =t;main()int a10= 12.457&96410,4&2.46,n=10.i;FILE *f;if(f=fopen(,myf2.outH;,wH)=NULL)printf(Hopen file myf2.out failed!nH);fun(aJO);for(i=0;i10;i+)printf(H%4d,ai);fprintf(f;,%4d,ai);fclose(f);18、编写函数countpi,利用公式兀(1121231234Q 1 + + X + X X + X X X +23353573579计算的近似值,当某一项的值小于10$时,认为达到精度要求,请完善函数。将结果显示 在屏幕上并输出到文件p7_3.out中。# includedouble countpi(double eps)/*eps为允许误差*/int m=l;double te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论