资源描述:
《C语言经典编程(二)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言经典编程(二)【程序1】题目:利用递归方法求5!。1.程序分析:递归公式:fn=fn_1*4!2.程序源代码:#include"stdio.h"main(){inti;intfact();for(i=0;i<5;i++) printf("40:%d!=%d",i,fact(i));}intfact(j)intj;{intsum;if(j==0) sum=1;else sum=j*fact(j-1);returnsum;}==============================================================【程序2】题目:利用
2、递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1.程序分析:2.程序源代码:#include"stdio.h"main(){inti=5;voidpalin(intn);printf("40:");palin(i);printf("");}voidpalin(n)intn;{charnext;if(n<=1) { next=getchar(); printf(" :"); putchar(next); }else { next=getchar(); palin(n-1); putchar(next); }}======================
3、========================================【程序3】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2.程序源代码:age(n)intn;{intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}m
4、ain(){printf("%d",age(5));}==============================================================【程序4】题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1.程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)2.程序源代码:main(){longa,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位
5、*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if(a!=0)printf("thereare5,%ld%ld%ld%ld%ld",e,d,c,b,a);elseif(b!=0)printf("thereare4,%ld%ld%ld%ld",e,d,c,b); elseif(c!=0)printf("thereare3,%ld%ld%ld",e,d,c); elseif(d!=0)printf("thereare2,%ld%ld",e,d); elseif(e!=0)printf("thereare1,%ld
6、n",e);}==============================================================【程序5】题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 1.程序分析:同29例2.程序源代码:main(){longge,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("thi
7、snumberisahuiwen");else printf("thisnumberisnotahuiwen");}【程序6】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。2.程序源代码:#includevoidmain(){charletter;printf("pleaseinputthefirstletterofsomeday");while(