




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言经典例题目解析1、猴子吃桃子:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子第一天共摘了几个桃子#include main() int s=1,i; for(i=9;i=1;i-) s=(s+1)*2; printf(s=%dn,s); 2、鸡兔同笼:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。问笼中各有几只鸡和兔?#include main()int a,b;for(a=1;a=40;a+) /* 120只脚如果全是鸡的话60只,但是总头是40,所以循环到40 */for (b=1;b=30;b+) /* 同理如果全是兔的话最多120/4=30 所以循环到30 */if(a=40-b)&(a=60-2*b) /* 同时满足总头数40总脚数120 */printf(There are %d chichens nThere are %d rabbits,a,b);3、百钱买百鸡:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?#include main( )int cocks,hens,chicks;cocks=0;while(cocks=19) hens=0; while(hens=33) chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3=100&chicks%3=0)printf(%d,%d,%dn,cocks,hens,chicks); hens=hens+1; cocks=cocks+1;#include main() int x,y,z; for(x=0;x=20;x+) for(y=0;y=33;y+) z=100-x-y; if(15*x+9*y+z=300) printf(x=%d y=%d z=%dn,x,y,z); 4、百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?#include void main()int i,j,k,n;for(i=0;i=33;i+) /*大马至多为100/3匹*/ for(j=0;j=50;j+) /*中马至多为100/2=50匹*/ for(k=0;k=100;k+) if(i+j+k=100) &(3*i+2*j+k/2=100) printf(i=%d,j=%d,k=%d n,i,j,k); 5、 打印Fibonacci数列(兔子数列)的前n项,每10个换一行。Fibonacci数列中前两项为1,1,以后每一个数都是其前两个数之和。如1,1,2,3,5,8,13,21,34,。#includevoid main()long f,f1,f2;int i,n;printf(Enter n : );scanf(%d,&n);f1=1;f2=1;printf(%10d%10d,f1,f2); for(i=1;i=n;i+) f=f1+f2;printf(%10d,f);f1=f2;f2=f;if(i%10=0) printf(n);6、汉诺塔问题:有三根杆子A,B,C。A杆上有若干碟子;每次移动一块碟子,小的只能叠在大的上面;把所有碟子从A杆全部移到C杆上。7、打印下三角的九九乘法表 #include main() int i,j; for(i=1;i=9;i+) for(j=i;j=9;j+) printf(%2d*%2d=%2d,i,j,i*j); printf(n); 8、输入n值,打印n行杨辉三角: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1#include void main() int i,j,n,k; printf(Enter n:);scanf(%d,&n); for(i=1;i=n;i+)k=1; for(j=1;ji;j+) printf(%3d,k); k=k*(i-j)/j;/每次要打印的下一个数等于前一个数乘以其所在行数和列数的差在处以其列数printf(%3d,k);printf(n);9. 输出各种菱形图案: A 1 A B A S S S A B C B A 2 2 2 2 2 A B C D C B A S S S S S S S A B C D E D C B A 3 3 3 3 3 3 3 3 3 A B C D C B A S S S S S S S A B C B A 2 2 2 2 2 A B A S S S A 110、约瑟夫问题:n个人坐一圈,从1到n给每个人编号。从s个人开始报数,数到第m个人,让他出局。然后从出局后下一个人开始报数,同样是第m个人,再让它出局,如此反复,直到剩下一个人。问题求剩下一个人编号是多少。#include main()int n, m, i, s=0; printf (Enter n: m: ); scanf(%d%d, &n, &m); for (i=2; i=n; i+) s=(s+m)%i; printf (The winner is %dn, s+1); 11、搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬一块砖(小孩不分性别),问有多少男人,多少女人,多少小孩?#include main( ) int i,j,k; for(i=1;i=36/4;i+) for(j=1;j=36/3;j+) for(k=2;k=36*2;k+=2) if(36=4*i+3*j+k/2) printf(%2d,%d,%2d ,i,j,k);12、 爱因斯坦的阶梯问题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。编写一个C程序解决该问题。#include main( )int x; for(x=7; ;x+=14) if(x%3=2&x%5=4&x%6=5) break; printf(The number of the ladders is:%dn,x);13、递增的牛群:若一头小母牛,从第四年开始每年生一头母牛,按些规律,第n年时有多少头母牛?#include main()int i,year,f,f1,f2,f3; printf(Enter year:);scanf(%d,&year); for(i=1;i=year;i+) if(i4) f=f1=f2=f3=1; elsef=f1+f3; f3=f2; f2=f1; f1=f; printf(i=%2d n=%3dn,i,f);14、 换零钱:将一元钱换成1分、2分、5分、1角、2角、5角的零钱若干,一共有多少种兑换方法?#include void main()int i,j,n,k,m,h,s=0; for(i=0;i=20;i+) for(j=0;j=50;j+) for(n=0;n=100;n+) for(k=0;k=10;k+) for(m=0;m=5;m+) for(h=0;h=2;h+) if( 5*i+2*j+1*n+10*k+20*m+50*h=100) printf(%2d %2d个, %2d %2d个, %2d %2d ,%2d %2d个 ,%2d %2d个 ,%2d %2d个,5,i,2,j,1,n,10,k,20,m,50,h); printf(n); s+; printf(一共有%d种方法,s);15. 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?#includemain()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+; else break; i=m; if(count=4) printf(%dn,j);break;16. 印度国王的奖励:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,让人扛了一袋麦子,但很快用完了,再扛出一袋还是不够,请你为国王算一下总共给达依尔多少小麦?(设1平方米小麦约1.4*108颗)17、水仙花数:水仙花数是指一个 n 位数 ( n3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:13 + 53 + 33 = 153) #includemain() int n,i,j,k; printf(water flower number is:); for(n=100;n=999;n+) i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k=i*i*i+j*j*j+k*k*k) printf(%-5d,n); printf(n);18、完数:即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=123.(6的因子是1,2,3) #include stdio.hint main()int a,i,m,k;printf(There are following perfect numbers smaller than 1000: );for(a=1;a1000;a+) /*循环控制选取11000中的各数进行判断*/for(m=0,i=1;i=a/2;i+) /*计算a的因子,并将各因子之和m=a,则a是完全数输出*/if(!(a%i)m+=i;if(m=a)printf(%4d ,a); printf(n);19. 老师分糖果:10个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块为奇数的人可向老师要一块。问经过这样几次后,大家手中的糖的块数将一样多?每人各有多少块糖?#includevoid print(int s);int judge(int c);int j=0;int main()static int sweet10=10,2,8,22,16,4,10,6,14,20; /*初始化数组数据*/int i,t10,l;printf( childn);printf( round 1 2 3 4 5 6 7 8 9 10n);printf(.n);print(sweet); /*输出每个人手中糖的块数*/while(judge(sweet) /*若不满足要求则继续进行循环*/for(i=0;i10;i+) /*将每个人手中的糖分成一半*/if(sweeti%2=0) /*若为偶数则直接分出一半*/ti=sweeti=sweeti/2;else /*若为奇数则加1后再分出一半*/ti=sweeti=(sweeti+1)/2;for(l=0;l9;l+) /*将分出的一半糖给右(后)边的孩子*/sweetl+1=sweetl+1+tl;sweet0+=t9;print(sweet); /*输出当前每个孩子中手中的糖数*/int judge(int c)int i;for(i=0;i10;i+) /*判断每个孩子手中的糖是否相同*/if(c0!=ci) return 1; /*不相同返回 1*/return 0;void print(int s) /*输出数组中每个元素的值*/int k;printf( %2d ,j+);for(k=0;k10;k+) printf(%4d,sk);printf(n);20、 买苹果问题:每个苹果0.8,第一天买2个,从第二天开始,每天买是前一天价格的两倍,问买100个苹果的时候,平均每天消费价格是多少?#include#define M 0.8/*单价*/void main()int num=2;/第一天2个 int dates=1;/天数计数器 float total,ave;/总价格,平均价格 while(num100) num = num+2*num; dates+; total = M*num; ave = total/dates; printf(%f,ave); 21、小球下落问题:一个小球从100米高度自由下落,每次落地后反跳回原来高度的一半,再下落,求它在第十次下落时,共经过多少米,第十次反弹多高?#include main()float sum=0;int i=0;float height=100;sum+=height; while(i10)height=height/2;sum+=2*height;i+;printf(总长度:%f 第10次跳%f米,sum,height);22、 彩球问题:有12个彩球,其中3个为白色,3个为红色,6个为黑色,要求从中任取8个,问这种颜色的组合共有多少种#include main()int i,j,count;puts(the result is:);printf(time red ball white ball black balln);count=1;for(i=0;i=3;i+) /*红球数量范围0到3之间*/for(j=0;j=3;j+) /*白球的数量范围0到3之间*/if(8-i-j)=6) /*判断要取黑色球的数量是否在6个以内*/printf(%3d%8d%9d%10dn,count+, i, j, 8-i-j);/*输出各种颜色球的数量*/23、输入一个5位数,判断它是否是回文。(个位与万位相同,十位与千位相同。)#include main( )long ge,shi,qian,wan,x; printf(please enter a number x:,x);scanf(%ld,&x);wan=x/10000;qian=x%10000/1000; shi=x%100/10;ge=x%10;if (ge=wan&shi=qian) /*个位等于万位并且十位等于千位*/printf(是回文n);elseprintf(不是回文n);24. 编程验证哥德巴赫猜想,即任一个偶数都可以分解为两个素数之和。#include int isprime(int);void even(int);void main()int a;printf(请输入一个偶数:); scanf(%d,&a);if(a%2=0) even(a);else printf(%d 不是偶数!n);void even(int x)int i;for(i=2;i=x/2;i+)if(isprime(i)&isprime(x-i) printf(%d=%d+%dn,x,i,x-i); return;int isprime(int a)int i;for(i=2;i=a/2;i+)if(a%i=0)return 0;return 1;25. 打印1-n平方(n为奇数)的自然数构成的“魔方阵”:即每行每列及对角线元素之和相等。#include #define N 20void main()int aNN=0,i,j,k,n;doprintf(请输入魔幻方的阶数n(n%d):,N);scanf(%d,&n);while(n=N|n%2=0);i=n+1; j=n/2+1;a1j=1; /将1放在第一行中间一列for(k=2;k=n*n;k+)/*从2开始直到n*n各数依次按一下规则存放:每一个数存放的行比前一个数的行数减1,列数加1*/i-; j+;if(in)i+=2;j-;else if(in) j=1;/当上一个数的列数为n时,下一个数的列数应为1,行数减去1if(aij=0)aij=k;/*如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。*/elsei+=2; j-;aij=k;for(i=1;i=n;i+)for(j=1;j=n;j+)printf(%-4d,aij);printf(n);26. 八皇后问题:在8*8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。27. 输入两个正整数,求他们的最大公约数和最小公倍数28. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#includevoid main()int i,j,k;for(i=1;i=4;i+)for(j=1;j=4;j+)for(k=1;k=4;k+)if(i!=j&i!=k&j!=k)printf(%d%d%d ,i,j,k);printf(n);29. 企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?30、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include#includevoid main()long int i; double j,k;for(i=1;i=10000;i+)j=(int)sqrt(i+100); k=(int)sqrt(i+268);if(j*j=i+100&k*k=i+268) printf(%d ,i);31、要求输出国际象棋棋盘。(.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。)#include main() int i,j; for(i=0;i8;i+) for(j=0;j8;j+) if(i+j)%2=0)printf(黑); else printf(白); printf(n);32、 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。#include main()int n,i;printf(please input a number: ); scanf(%d,&n);printf(%d=,n);for(i=2;i=n;i+) while(n!=i)if(n%i=0)printf(%d*,i);n=n/i;else break;printf(%d,n);33、 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。#include main()char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/for(i=x;i=z;i+)for(j=x;j=z;j+) if(i!=j)for(k=x;k=z;k+)if(i!=k&j!=k)if(i!=x&k!=x&k!=z)printf(order is a-%ctb-%ctc-%cn,i,j,k);34、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?35、 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。#include main( )long a,b,c,d,e,x;printf(piease enter anumber: );scanf(%ld,&x);a=x/10000;b=x%10000/1000; c=x%1000/100;d=x%100/10;e=x%10;if (a!=0) printf(there are 5, %ld %ld %ld %ld %ldn,e,d,c,b,a);else if (b!=0) printf(there are 4, %ld %ld %ld %ldn,e,d,c,b);else if (c!=0) printf( there are 3,%ld %ld %ldn,e,d,c);else if (d!=0) printf(there are 2, %ld %ldn,e,d);else if (e!=0) printf( there are 1,%ldn,e);36、将一个数组逆序输出。#include #define N 5 main() int aN=9,6,5,4,1,i,temp; printf(original array:n); for(i=0;iN;i+) printf(%4d,ai); for(i=0;iN/2;i+) temp=ai; ai=aN-i-1; aN-i-1=temp; printf(nsorted array:n); for(i=0;iN;i+) printf(%4d,ai);37、 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+.+1/n,当输入n为奇数时,调用函数1/1+1/3+.+1/n#include int main(int argc, char *argv)int n; float fj(int x); float fo(int x); scanf(%d,&n); if(n%2=0)printf(%.2f,fo(n);else printf(%.2f,fj(n); return 0; float fj(int x)int i; float s; s=0; for(i=1;i=x;i+=2)s=s+1.0/i ; return(s); float fo(int x)int i; float s; s=0; for(i=2;i=x;i+=2)s=s+1.0/i ; return(s);38、已知10个数,请用选择法或冒泡法进行排序39、输入一元二次方程的系数,计算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏扬州人才集团下属企业招聘6人笔试备考试题及1套参考答案详解
- 2025江苏徐州市中心医院招聘高层次卫生人才31人笔试备考题库附答案详解
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试备考题库及参考答案详解1套
- 2025广东选拔汕头市市级乡村振兴人才80人笔试备考题库参考答案详解
- 2025河北邯郸市峰峰矿区招聘农村党务(村务)工作者157人笔试备考试题及1套参考答案详解
- 2025年部编版语文四年级下册第一次月考测试题附答案
- 2025年宝鸡市公务员考试行测试卷历年真题参考答案详解
- 2025年注册环保工程师之注册环保工程师专业基础能力提升试卷A卷附答案
- 幼儿故事淡蓝的元旦旅程
- 房地产项目管理中的安全隐患控制
- 整体施工劳务服务方案
- DBJT13-119-2010 福建省住宅工程质量分户验收规程
- 2025年贵州盘江精煤股份有限公司招聘笔试参考题库含答案解析
- GB/T 26718-2024城市轨道交通安全防范系统技术要求
- 马工程《艺术学概论》课件424P
- 2025届上海交大附属中学高三第三次模拟考试英语试卷含解析
- 胃十二指肠溃疡瘢痕性幽门梗阻病因介绍
- 安全管理知识培训课件
- 月亮姑娘做衣裳
- 汽车教练员测试题(含参考答案)
- 中控室安全生产制度模版(3篇)
评论
0/150
提交评论