收藏 分销(赏)

C语言经典编程100例.doc

上传人:二*** 文档编号:4495828 上传时间:2024-09-25 格式:DOC 页数:14 大小:36KB
下载 相关 举报
C语言经典编程100例.doc_第1页
第1页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 . . . . C语言经典编程100例程序1题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.2.程序源代码: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; /*前两个月加起来赋值给第三个月*

2、/=程序2题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则说明此数不是素数,反之是素数。2.程序源代码:#include math.hmain()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) printf(%-4d,m);h+;if(h%10=0)printf(n); leap=1;printf(nThe total is %d,

3、h);程序4题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经完毕,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 2.程序源代码:/* zheng int is divided yinshu*/main()int n,i;printf(nplease input a number:n);scanf(%d,

4、&n);printf(%d=,n);for(i=2;i=n;i+)while(n!=i)if(n%i=0) printf(%d*,i);n=n/i;elsebreak;printf(%d,n);=程序11题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码:main()int i,j,k;printf(n);for(i=1;i5;i+)*以下为三重循环*/for(j=1;j5;j+)for (k=1;k5;k+)if (i!=k&i!=j&j!=k

5、) /*确保i、j、k三位互不相同*/printf(%d,%d,%dn,i,j,k);=程序13题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:2.程序源代码:#include math.hmain()long int i,x,y,z;for (i=1;iy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。2.程序源代码:main()int x,y,z,t;sca

6、nf(%d%d%d,&x,&y,&z);if (xy)t=x;x=y;y=t; /*交换x,y的值*/if(xz)t=z;z=x;x=t;/*交换x,z的值*/if(yz)t=y;y=z;z=t;/*交换z,y的值*/printf(small to big: %d %d %dn,x,y,z);程序18题目:输出9*9口诀。1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2.程序源代码:#include stdio.hmain()int i,j,result;printf(n);for (i=1;i10;i+) for(j=1;j10;j+)result=i*j;printf(%d*

7、%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/printf(n);/*每一行后换行*/=程序19题目:要求输出国际象棋棋盘。1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2.程序源代码:#include stdio.hmain()int i,j;for(i=0;i8;i+)for(j=0;j8;j+)if(i+j)%2=0)printf(%c%c,219,219);elseprintf( );printf(n);= 题程序26 题目:利用递归方法求5!。1.程序分析:递归公式:fn=fn_1*4!2.程序源代码:#includ

8、e stdio.hmain()int i;int fact();for(i=0;i5;i+)printf(40:%d!=%dn,i,fact(i);int fact(j)int j;int sum;if(j=0)sum=1;elsesum=j*fact(j-1);return sum;=程序27 题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1.程序分析:2.程序源代码:#include stdio.hmain()int i=5;void palin(int n);printf(40:);palin(i);printf(n);void palin(n)int n;char

9、 next;if(n=1)next=getchar();printf(n0:);putchar(next);elsenext=getchar();palin(n-1);putchar(next);=程序28 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2.程序源代码:age(n)int

10、 n;int c;if(n=1) c=10;else c=age(n-1)+2;return(c);main() printf(%d,age(5);=程序30 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。1.程序分析:同29例2.程序源代码:main( )long ge,shi,qian,wan,x;scanf(%ld,&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if (ge=wan&shi=qian)/*个位等于万位并且十位等于千位*/printf(this number is

11、a huiwenn);elseprintf(this number is not a huiwenn);程序31题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。2.程序源代码:#include void main()char letter;printf(please input the first letter of somedayn);while (letter=getch()!=Y)/*当所按字母为Y时才完毕*/ switch (letter)case

12、S:printf(please input second lettern);if(letter=getch()=a)printf(saturdayn);else if (letter=getch()=u)printf(sundayn);else printf(data errorn);break;case F:printf(fridayn);break;case M:printf(mondayn);break;case T:printf(please input second lettern);if(letter=getch()=u)printf(tuesdayn);else if (lett

13、er=getch()=h)printf(thursdayn);else printf(data errorn);break;case W:printf(wednesdayn);break;default: printf(data errorn);=程序67题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。1.程序分析:谭浩强的书中答案有问题。2.程序源代码:main()int number10;input(number);max_min(number);output(number);input(number)int number10;int i;for(i=0;i9;

14、i+)scanf(%d,&numberi);scanf(%d,&number9);max_min(array)int array10;int *max,*min,k,l;int *p,*arr_end;arr_end=array+10;max=min=array;for(p=array+1;p*max) max=p;else if(*p*min) min=p;k=*max;l=*min;*p=array0;array0=l;l=*p;*p=array9;array9=k;k=*p;return;output(array)int array10; int *p;for(p=array;p1)br

15、eak;if(n%2=0)printf(Even=);sum=dcall(peven,n);elseprintf(Odd=);sum=dcall(podd,n);printf(%f,sum);float peven(int n)float s;int i;s=1;for(i=2;i=n;i+=2)s+=1/(float)i;return(s);float podd(n)int n;float s;int i;s=0;for(i=1;i0) swap(str1,str2);if(strcmp(str1,str3)0) swap(str1,str3);if(strcmp(str2,str3)0)

16、swap(str2,str3);printf(after being sortedn);printf(%sn%sn%sn,str1,str2,str3);char swap(p1,p2)char *p1,*p2;char *p20;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);=程序80题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?1

17、.程序分析:2.程序源代码:main()int i,m,j,k,count;for(i=4;i10000;i+=4) count=0;m=i;for(k=0;k5;k+)j=i/4*5+1;i=j;if(j%4=0)count+;elsebreak;i=m;if(count=4)printf(%dn,count);break;程序81题目:809*?=800*?+9*?+1 其中?代表的两位数,8*?的结果为两位数,9*?的结果为3位数。求?代表的两位数,与809*?后的结果。1.程序分析:2.程序源代码:output(long b,long i) printf(n%ld/%ld=809*%l

18、d+%ld,b,i,i,b%i);main()long int a,b,i;a=809;for(i=10;i=1000&b=10000&8*i=100)output(b,i); =程序82题目:八进制转换为十进制1.程序分析:2.程序源代码:main() char *p,s6;int n;p=s;gets(p);n=0;while(*(p)!=0)n=n*8+*p-0;p+;printf(%d,n);=程序83题目:求07所能组成的奇数个数。1.程序分析:2.程序源代码:main()long sum=4,s=4;int j;for(j=2;j=8;j+)/*j is place of numb

19、er*/ printf(n%ld,sum);if(j=2)s*=7;elses*=8;sum+=s;printf(nsum=%ld,sum);=程序84题目:一个偶数总能表示为两个素数之和。1.程序分析:2.程序源代码:#include stdio.h#include math.hmain() int a,b,c,d;scanf(%d,&a);for(b=3;b=a/2;b+=2) for(c=2;csqrt(b)d=a-b;elsebreak;for(c=2;csqrt(d)printf(%d=%d+%dn,a,b,d);=程序85题目:判断一个素数能被几个9整除1.程序分析:2.程序源代码

20、:main() long int m9=9,sum=9;int zi,n1=1,c9=1;scanf(%d,&zi);while(n1!=0) if(!(sum%zi)n1=0;elsem9=m9*10;sum=sum+m9;c9+;printf(%ld,can be divided by %d 9,sum,c9);=程序88题目:读取7个数(150)的整数值,每读取一个值,程序打印出该值个数的。1.程序分析:2.程序源代码:main()int i,a,n=1;while(n=7) do scanf(%d,&a);while(a50);for(i=1;i=a;i+)printf(*);prin

21、tf(n);n+;getch();=程序89题目:某个公司采用公用传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。1.程序分析:2.程序源代码:main()int a,i,aa4,t;scanf(%d,&a);aa0=a%10;aa1=a%100/10;aa2=a%1000/100;aa3=a/1000;for(i=0;i=3;i+)aai+=5;aai%=10;for(i=0;i=0;i-)printf(%d,aai);=程序96题目:计算字符串中子串出现的次数1.程序分析:2.程序源代码:#include string.h#include stdio.hmain() char str120,str220,*p1,*p2;int sum=0;printf(please input two stringsn);scanf(%s%s,str1,str2);p1=str1;p2=str2;while(*p1!=0)if(*p1=*p2)while(*p1=*p2&*p2!=0)p1+;p2+;elsep1+;if(*p2=0)sum+;p2=str2;printf(%d,sum);getch(); 14 / 14

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服