您好,欢迎访问三七文档
1C语言学习经典实例第一章基础知识练习程序一:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数#includestdio.hmain(){inta,b,c,;for(i=100;i=999;i++){a=i/100;b=i/10%10;c=i0%10;if((a*a*a+b*b*b+c*c*c)==i)printf(%d,,i);}}结果:153370371407程序二:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5main(){inta,k=0,i;charb[100];scanf(%d,&a);printf(%d=,a);for(i=2;i=a;i++){do{if(a%i==0){b[k]=i;k++;a=a/i;}elsebreak;}while(a=i);}for(i=0;i2*k-1;i++)if(i%2==0)printf(%d,b[i/2]);else2printf(*);}4848=2*2*2*2*3程序三:输入两个正整数m和n,求其最大公约数和最小公倍数。#includestdio.hmain(){inta,b,x,y,r,t;scanf(%d,%d,&a,&b);printf(%d%d\n,a,b);x=a;y=b;if(xy){t=y;y=x;x=t;}do{r=y%x;y=x;x=r;}while(r!=0);printf(%d,y);printf(%d,a*b/y);}25,3025305150第一章数组的简单应用程序四:判断101-200之间有多少个素数,并输出所有素数。所谓素数:仅能被1和它本身整除的数。#includestdio.hmain(){inta,b,i,j,k,s=0,n=0;intc[100];for(i=10;i=30;i++){k=0;for(j=2;j=i/2;j++){b=i%j;if(b==0)k=1;3}if(k==0){s++;c[n]=i;n++;}}printf(%d\n,s);for(i=0;in;i++)printf(%d,c[i]);}6111317192329程序五:Fibonacci数列,第1数为1,第2数为1,从第3输开始,为前两个数的和,即f1=1;f2=1;fn=fn-1+fn-2;求前20项个是什么,并且每行输出五个数#includestdio.hmain(){intf1,f2,f3,i,j;f1=1;f2=1;printf(%d%d,f1,f2);for(i=1;i=20;i++){f3=f1+f2;f1=f2;f2=f3;printf(%d,f3);for(j=1;j=20;j++){if(i==5*j-2)printf(\n);}}}112358132134558914423337761098715972584418167651094617711程序六:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。4main(){intcount,i,sum,t,a;scanf(%d,&count);scanf(%d,&a);t=a;sum=0;for(i=1;i=count;i++){sum=sum+t;t=10*t+a;}printf(%3d,sum);}35615程序七:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。main(){inti,j,s,b[100],n,l;for(i=1;i=1000;i++){s=0;n=0;for(j=1;ji;j++)if(i%j==0){s=s+j;b[n]=j;n++;}if(s==i){printf(%ditsfactorsare,i);for(l=0;ln-1;l++)printf(%d,,b[l]);printf(%d\n,b[n-1]);}}}6itsfactorsare1,2,328itsfactorsare1,2,4,7,14496itsfactorsare1,2,4,8,16,31,62,124,248程序八:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?#includestdio.hmain(){inti;floatt,s=0,h1,h=100;for(i=1;i=3;i++)5{t=3/2.0*h;s=s+t;t=t*1/2.0;h=h/2.0;h1=h;}printf(%3.2f%3.2f,s-1,h1);}250.0012.50程序九:求的近似值,最后一项绝对值小于610为止。/4约为1-1/3+1/5-1/7+……#includemath.hmain(){floats=0,t=1,i=1;/t必须定义为实数/intn=1;while((fabs(t))1e-6){s=s+t;n=n+2;i=-i;t=i/n;}s=s*4;printf(%10.3f\n,s);}3.14159程序十:求2/1,3/2,5/3,8/5,13/8,21/13……前10项和main(){floats=0,t,a=1,b=2,c;inti;for(i=1;i=10;i++){t=b/a;printf(%f,t);s=s+t;c=a;a=b;b=b+c;}printf(%10.3f,s);}2.0000001.5000001.6666671.6000001.6250001.6153851.6190481.6176471.6181821.61797716.4806第二章特殊图形的设计程序十一:打印图形main(){inti,j;for(i=0;i=6;i++){for(j=0;j=6;j++){if(j=(9-i)&&(j=i+3)&&(j=3-i)&&(j=i-3))printf(*);elseprintf();}printf(\n);}}*************************程序十二:用牛顿迭代法求方程在1.5附近的根。2x³-4x²+3x-6=0#includemath.hmain(){floatx,x0,f,f1,t;intn=0;x0=1.5;do{f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;t=x0;x=x0-f/f1;n++;x0=x;printf(%1.4f%d\n,x,n);}while(fabs(x-t)=1e-6);}2.333312.061022.002632.0000472.000052.00006程序十三:求2001!kkmain(){longintt=1,s,i;s=0;for(i=1;i=20;i++){t=t*i;s=s+t;}printf(%ld\n,s);}268040729第三章字符及字符串函数程序十四:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#includestdio.hmain(){charc;intl,s,d,t;l=0;s=0;d=0;t=0;c=getchar();while(c!='\n'){if((c='a'&&c='z')||(c='A'&&c='Z'))l++;elseif(c=='')s++;elseif(c='0'&&c='9')d++;elset++;c=getchar();}printf(%2d%2d%2d%2d,l,s,d,t);}kljh95682k[]\='5355程序十五:取一个整数a从右端开始的4~7位。程序分析:可以这样考虑:(1)先使a右移4位。(2)设置一个低4位全为1,其余全为0的数。可用~(~04)(3)将上面二者进行&运算。8程序十六:用冒泡法对数组从小到大排序。main(){inta[10],i,j,t;for(i=0;i10;i++)scanf(%d,&a[i]);for(i=0;i10;i++)for(j=i;j10;j++)if(a[j]a[i]){t=a[i];a[i]=a[j];a[j]=t;}for(i=0;i10;i++)printf(%d,a[i]);}1527483609exit0123456789程序十七:输入一行字符,统计其中有多少个单词,单词之间用空格分开。#includestdio.hmain(){charstring[81];intn=0,w=0,i;charc;gets(string);for(i=0;(c=string[i])!='\0';i++){if(c=='')w=1;elsew=0;if(w==1)n++;}n++;printf(%d\n,n);}Iamaboy4Todayisthursday3程序十八:将一个数组按逆序存放:#includestdio.hmain(){inti,t;intb[10]={1,6,5,2,8,9,3,4,0,7};for(i=0;i10/2;i++)9{t=b[i];b[i]=b[10-1-i];b[10-1-i]=t;}for(i=0;i10;i++)printf(%d,,b[i]);}7,0,4,3,9,8,2,5,6,1,程序十九:已有一个排好的数组,按顺序插入一个数main(){inti,j,k,m,a=2;intb[10]={4,5,8,9,12,14,15,17,19},c[10];if(ab[8]){c[9]=a;for(i=0;i9;i++)c[i]=b[i];}else{for(i=0;i8;i++)if(ab[i]&&ab[i+1]){k=i;c[k+1]=a;}for(j=k+2;j10;j++)c[j]=b[j-1];for(m=0;m=k;m++)c[m]=b[m];}if(ab[0]){c[0]=a;for(i=1;i10;i++)c[i]=b[i-1];}for(i=0;i10;i++)printf(%d,c[i]);}245891214151719main(){inti,j,k,m,a=22;intb[10]={4,5,8,9,12,14,15,17,19},c[10];if(ab[8]){c[9]=a;for(i=0;i9;i++)c[i]=b[i];}else{for(i=0;i8;i++)if(ab[i]&&ab[i+1]){k=i;c[k+1]=a;}10for(j=k+2;j10;j++)c[j]=b[j-1];for(m=0;m=k;m++)c[m]=b[m];}if(ab[0]){c[0]=a;for(i=1;i10;i++)c[i]=b[i-1];}for(i=0;i10;i++)printf(%d,c[i]);}4589121415171922main(){inti,j,k,m,a=13;intb[10]={4,5,8,9,12,14,15,17,19},c[10];if(ab[8]){c[9]=a;for(i=0;i9;i++)c[i]=b[i];}else{for(i=0;i8;i++)if(ab[i]&&ab[i+1]){k=i;c[k+1]=a;}for(j=k+2;j10;j++)c[j]=b[j-1];for(m=0;m=k;m++)c[m]=b[m];}if(ab[0]){c[0]=a;for(i=1;i10;i++)c[i]=b[i-1];}for(i=0;i10;i++)printf(%d,c[i]);}4589121314151719程序二十:打印杨辉三角(打印出10行)11112113311464115101051#includestdio.h11main(){inti,j;chara
本文标题:c语言典型例子
链接地址:https://www.777doc.com/doc-3612136 .html