40个C语言的基础编程题

上传人:飞****9 文档编号:131860447 上传时间:2020-05-10 格式:DOC 页数:6 大小:91KB
返回 下载 相关 举报
40个C语言的基础编程题_第1页
第1页 / 共6页
40个C语言的基础编程题_第2页
第2页 / 共6页
40个C语言的基础编程题_第3页
第3页 / 共6页
40个C语言的基础编程题_第4页
第4页 / 共6页
40个C语言的基础编程题_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《40个C语言的基础编程题》由会员分享,可在线阅读,更多相关《40个C语言的基础编程题(6页珍藏版)》请在金锄头文库上搜索。

1、C语言基础编程题【程序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,h);=【程序3

3、】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:main()int i,j,k,n;printf(water flowernumber is:);for(n=100;n1000;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

4、,n);printf(n);=【程序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 numbe

5、r:n);scanf(%d,&n);printf(%d=,n);for(i=2;i=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1.程序分析:(ab)?a:b这是条件运算符的基本例子。2.程序源代码:main()int score;char grade;printf(please input a scoren);scanf(%d,&score);grade=score=90?A:(score=60?B:C);printf(%d belongs to %c,score,grade);=【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用

6、辗除法。2.程序源代码:第一种做法:#include stdio.hvoid main() int m,n,i; printf(请输入两个正整数:); scanf(%d%d,&m,&n); if(mn) i=m; else i=n; while(m%i!=0)|(n%i!=0) i-; printf(%d和%d的最大公约为:%dn,m,n,i);/第二种做法:#include stdio.hvoid main() int m,n,r; printf(请输入两个正整数:); scanf(%d%d,&m,&n); if(m=a&c=A&c=0&c=9)digit+;elseothers+;prin

7、tf(all in all:char=%d space=%d digit=%d others=%dn,letters,space,digit,others);=【程序8】题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。参照P214例21.程序分析:关键是计算出每一项的值。2.程序源代码:main()int a,n,count=1;long int sn=0,tn=0;printf(please input a and nn);scanf(%d,%d,&a,&n);printf(a=%

8、d,n=%dn,a,n);while(count=n)tn=tn+a;sn=sn+tn;a=a*10;+count;printf(a+aa+.=%ldn,sn);=【程序9】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?1.程序分析:见下面注释2.程序源代码:main()float sn=100.0,hn=sn/2;int n;for(n=2;n=10;n+)sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2; /*第n次反跳高度*/printf(the total of road is %fn,

9、sn);printf(the tenth is %f metern,hn);#include stdio.h main() float h=100,s=100; int i=1; while(i=10) h=h/2; printf(第%2d次反弹的高度:%12.9f,第%2d次落地时经过的距离:%12.8fn,i,h,i,s); s=s+2*h; i+; =【程序10】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码:main()int i,j

10、,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) /*确保i、j、k三位互不相同*/printf(%d,%d,%dn,i,j,k);= 【程序11】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:2.程序源代码:include math.hmain()long int i,x,y,z;for (i=1;i100000;i+) x=sqrt(i+100); /*x为加上100后开方后的结果*/y=sqrt(i+268); /*y为再加上168后开方后的结果*/if(x*x=i+100&y*y=i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/print

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号