经典c程序100例-c语言.pdf
《经典c程序100例-c语言.pdf》由会员分享,可在线阅读,更多相关《经典c程序100例-c语言.pdf(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、经典c程序100例 推荐经典c程序10 0例=1 10【程序1】题目:有1、2,3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。2.程序源代码:ma i n Oi n t i,j,k;p r i n t f(n );fo r(i=l;i 5;i+)/*以下为三重循环*/fo r(j=l;j 5;j+)fo r (k=l;k 5;k+)i f(i!=k&i!=j&j!=k)/*确保 i、j、k 三位互不相同*/p r i n t f(%d,%d,%d n”,i,j,k);【程序
2、2】题目:企业发放的奖金根据利润提成。利润(D低于或等于10万元时,奖金可提10机 利润高于10万元,低于2 0万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5乐2 0万到4 0万之间时,高于2 0万元的部分,可提成5机4 0万到6 0万之间时高于4 0万元的部分,可提成3%:6 0万到10 0万之间时,高于6 0万元的部分,可提成1.5%,高于10 0万元时,超过10 0万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。2 .程序源代码:ma i n O(lo n g i n t i;
3、i n t b o n u s 1,b o n u s 2,b o n u s 4,b o n u s 6,b o n u s 10,b o n u s;s c a n f&i);b o n u s l=10 0 0 0 0*0.1;b o n u s 2=b o n u s l+10 0 0 0 0*0.7 5;b o n u s 4=b o n u s 2+2 0 0 0 0 0*0.5;b o n u s 6=b o n u s 4+2 0 0 0 0 0*0.3;b o n u s 10=b o n u s 6+4 0 0 0 0 0*0.15;if(i=100000)bonus=i*
4、0.1;else if(i=200000)bonus=bonusl+(i-100000)*0.075;else if(i=400000)bonus=bonus2+(i-200000)*0.05;else if(i=600000)bonus=bonus4+(i-400000)*0.03;else if(i=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf(bonus=%d”,bonus);【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是
5、多少?1.程序分析:在 10万以内判断,先将该数加I:100后再开方,再将该数加I.268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:2.程序源代码:include math,h”mainOlong int i,x,y,z;for(i=l;i 2)/*如果是闰年且月份大于2,总天数应该加一天*/s u m+;p r i n t f C11 i s t h e%d t h d a y.”,s u m);【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x y则将x与y的值进行交换,然后再用x与
6、z进行比较,如果x z则将x与z的值进行交换,这样能使x最小。2 .程序源代码:ma i n()(i n t x,y,z,t;s c a n f(%d%d%d”,&x,&y,&z);i f(x y)t=x;x=y;y=t;l/*交换 x,y 的值*/i f(x z)t=z;z=x;x=t;/*交换 x,z 的值*/i f(y z)t=y;y=z;z=t;/*交换 z,y 的值*/p r i n t f(*s ma ll t o b i g:%d%d%d n”,x,y,z);)【程序6】题目:用*号输出字母C的图案。1.程序分析:可先用*号在纸上写出字母C,再分行输出。2.程序源代码:f t i
7、 ncl ude st di o.h m ai nO(pri nt f (H e l l o C-w orl d!n,z);pri nt f(*n);pri nt f C *n);pri nt f C *n);pri nt f(*n);)【程序7】题目:输出特殊图案,请在c环境中运行,看看,Ve ry Be aut i f ul!1.程序分析:字符共有256个。不同字符,图形不样。2.程序源代码:t t i ncl ude st di o.h m ai nO(ch ar a=176,b=219;pri nt f (/z%c%c%c%c%cn,z,b,a,a,a,b);pri nt f (z,%
8、c%c%c%c%cn,/,a,b,a,b,a);pri nt f (%c%c%c%c%cn,a,a,b,a,a);pri nt f (%c%c%c%c%cn”,a,b,a,b,a);pri nt f (%c%c%c%c%cn,b,a,a,a,b);【程序8】题目:输出9*9 口诀。1.程序分析:分行与列考虑,共9行9歹i控制行,j控制列。2.程序源代码:#i ncl ude st di o.h m ai n()i nt i,j,re sul t;pri nt f(n);f or(i=l;i 10;i+)f or(j=l;j 10;j+)re sul t二i*j;pri nt f (/,%d*%
9、d=%-3dz,,i,j,re sul t);/*-3d 表示左对齐,占 3 位*/pri nt f (n);/*每一行后换行*/)【程序9】题目:耍求输出国际象棋棋盘。1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2.程序源代码:i ncl ude st di o.h m ai n()(i nt i,j;f or(i=0;i 8;i+)(f or(j=0;j 8;j+)i f(i+j)%2=0)pri nt f 219,219);e l sepri nt f C 3;pri nt f(n);)【程序10题目:打印楼梯,同时在楼梯上方打印两个笑脸。1.
10、程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。2.程序源代码:i ncl ude “st di o.h m ai nO(i nt i,j;pri nt f (l l n);/*输出两个笑脸*/f or(i=l;i U;i+)(f or(j=l;j =i;j+)pri nt f (枇 祀,219,219);pri nt f(n);)人生中的许多事情就像程序员在设计程序。于是,我爱上了程序,而网络为我提供了学习他人经验的一个桥梁,这是一个捷径,使我很快学会了很多知识和技巧。所以,我也想通过网络把我的一点经验献给那些需要它的人。这简直太奇妙了!发贴时间:2002-9-22
11、9:16:02 里沙鸥.a悄悄话 配 好 友 口 信息 搜索 邮 箱 引 用.回 复等级:版主财产:-经验:魅力:门派:RCA D注册:2002-8-30文 章:224鉴定:保密经典C程 序100例=1120【程 序11题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.2.程序源代码:main()(long fl,f2;int i;f l=f2=l;for(i=l;i=20;i+)printf(飞 121d fl,f2);if(i%
12、2=0)p rin tf(n);/*控制输出,每行四个*/fl=fl+f2;/*前两个月加起来赋值给第三个月*/f2=fl+f2;/*前两个月加起来赋值给第三个月*/)【程 序12题目:判 断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2.程序源代码:#include math,h”main()int m,i,k,h=0,leap=l;printf(n);for(m=1 0 1;m=20 0;m+)k=sqrt(m+l);for(i=2;i=k;i+)if(m%i=0)lea
13、p=0;break;if(leap)printf(*%-4 d*,m);h+;if(h%1 0=0)printf(n);)leap=l;printf(z,nT he total is%d”,h);【程序1 3题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:1 5 3是一个“水仙花数”,因为1 5 3=1的三次方十5的三次方+3的三次方。1.程序分析:利用for循环控制1 0 0-9 9 9个数,每个数分解出个位,十位,百位。2.程序源代码:main()(int i,j,k,n;printf(/z,water f lower*number is
14、:);for(n=1 0 0;n k,但n 能被k 整除,则应打印出k 的值,并用n除以k 的商,作为新的正整数你n,重复执行第一步。如果n 不能被k 整除,则用k+1 作为k 的值,重复执行第一步。2.程序源代码:/*zheng int is divided yinshu*/main()(int n,i;printf(z/nplease input,a number:n/z);s c a n f&n);printf(“刎=”,n);for(i=2;i b)?a:b这是条件运算符的基本例子。2.程序源代码:main()(int score;char grade;printf(please in
15、put a score n);scanf(%d,&score);grade=score=9 0?A :(score=6 0?B :C );printf(z,%d belongs to%cz,,score,grade);【程序1 6 题目:输入两个正整数ni和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。2.程序源代码:main()(int a,b,numl,num2,temp;printf(please input two numbers:n);scanf(d,%d,&numl,&num2);if(numl temp=num1;numl=num2;num2=temp;)a=numl
16、;b=num2;while(b!=0)/*利用辗除法,直到b为0为止*/(temp=a%b;a=b;b=temp;)printf(,zgongyueshu:%dn/z,a);printf(gongbeishu:%dn”,numl*num2/a);)【程序1 7 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1.程序分析:利用while语句,条件为输入的字符不为n.2.程序源代码:#include stdio.hmain()char c;int letters=0,space=0,digit=O,others:。;printf(please input some cha
17、ractersn*);whi 1 e(c=getchar()!=,n)(if(c=,a&c=A&c=0*&c =)d i g i t+;e ls eo t h e r s+;)p r i n t f(a ll i n a ll:c h a r=%d s p a c e=%d d i g i t=%d o t h e r s二%d n”,le t t e r s,s p a c e,d i g i t,o t h e r s);)【程序1 8 题目:求s=a+a a+a a a+a a a a+a a.a的值,其中a是一个数字。例如 2+2 2+2 2 2+2 2 2 2+2 2 2 2 2 (
18、此时共有5个数相加),儿个数相加有键盘控制。1.程序分析:关键是计算出每一项的值。2 .程序源代码:ma i n()(i n t a,n,c o u n t=l;lo n g i n t s n=0,t n=0;p r i n t f (z,p le a s e i n p u t a a n d n n);s c a n f (*d,%d,z,&a,&n);p r i n t f (a=%d,n=%d n,a,n);w h i le(c o u n t(二n)t n=t n+a;s n=s n+t n;a=a*1 0;+c o u n t;p r i n t f (/za+a a+.=%ld
19、 n”,s n);【程序1 9 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1 0 0 0 以内的所有完数。1 .程序分析:请参照程序 一上页程序1 4.2 .程序源代码:ma i n O(s t a t i c i n t k 1 0 ;i n t i,j,n,s;f o r(j=2;j 1 0 0 0;j+)(n=-l;s=j;f o r(i=l;i i f(j%i)=O)n+;s=s-i;k n =i;i f (s=0)(p r i n t f (/z%d i s a w a n s h u”,j);f o r (i=0;i p r i n t
20、 f (%d,k i );p r i n t f (,z%d n,z,k n );)【程序2 0 题目:一球从1 0 0 米高度自由落下,每次落地后反跳回原高度的一半;再落卜,求它在第 1 0 次落地时,共经过多少米?第 1 0 次反弹多高?1 .程序分析:见下面注释2 .程序源代码:ma i n O(f lo a t s n=1 0 0.0,h n=s n/2;i n t n;for(n=2;n0)xl=(x2+l)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x 2=x l;d a y ;)pr i n t f(t h e t o t a l i s%d n ,x l);)【程序2
21、2题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c 三人,乙队为x,y,z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。1.程序分析:判断素数的方法:用 个数分别去除2 到 s q r t(这个数),如果能被整除,则表明此数不是素数,反之是素数。2.程序源代码:m a i n ()(c h a r i,j,k;/*i 是 a的对手,j是 b的对手,k是 c的对手*/【程序23题目:打印出如下图案(菱形)*fo r(i=x ;i =z,;i+)fo r(j-x ;j =z ;j+)(i f(i!=j)fo r(k=x
22、;k =z ;k+)i f(i!=k&j!=k)i f(i!=x&k!=x&k!=z)pr i n t f(o r d er i s a-%c t b-%c t c-%c n”,i,j,k);*1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重fo r循环,第一层控制行,第:层控制列。2.程序源代码:m a i n ()(i n t i,j,k;fo r(i=0;i =3;i+)fo r(j=0;j =2-i;j+)pr i n t fC );fo r(k=0;k =2*i;k+)pr i n t f(*);pr i n t f(n);fo r(i=0;i =2;
23、i+)(fo r(j=0;j =i;j+)pr i n t f C 3;fo r(k=0;k =4-2*i;k+)pr i n t f(V);pr i n t f(n);)【程序24题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和。1.程序分析:请抓住分子与分母的变化规律。2.程序源代码:m a i n()(i n t n,t,n u m b er=20;fl o a t a=2,b=l,s=0;fo r(n=l;n =n u m b er;n+)s=s+a/b;t二a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/pr
24、i n t f(s u m i s%9.6f n,s);)【程序25题目:求 l+2!+3!+.+20!的和1.程序分析:此程序只是把累加变成了累乘。2.程序源代码:m a i n O(fl o a t n,s=0,t=l;fo r(n=l;n =20;n+)(t*=n;s+=t;)pr i n t f(1+2!+3!.+20!=%e n*,s);)【程序26题目:利用递归方法求5!。1.程序分析:递归公式:fn=fn 1*4!2.程序源代码:4i n c l u d e“s t d i o.h m a i n()(i n t i;i n t fa c t ();fo r(i=0;i 5;i+
25、)pr i n t f(40:%d!=%d n”,i,fa c t (i);)i n t fa c t(j)i n t j;(i n t s u m;i f(j=O)s u m=l;el s es u m=j*fa c t(j-1);r et u r n s u m:)【程序27 题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1.程序分析:2.程序源代码:4i n c l u d e“s t d i o.h m a i n()(i n t i=5;v o i d pa l i n(i n t n);pr i n t f(40:);pa l i n(i);pr i n t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 程序 100 语言
限制150内