40个C语言的基础编程题

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

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

1、C语言基础编程题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1程序分析:兔子的规律为数列1,123,5,&13,21.2.程序源代码:main()longfl,f2;inti;fl=f2=l;for(i=l;iv=20;i+)printf(%121d%121d,fl,f2);if(i%2=0)printf(”n”);/*控制输出,每行四个*/fl=fl+f2;/*前两个月加起来赋值给第三个月*/f2=fl+f2;/*前两个月加起来赋值给第三个月*/【程序2】题目:判断101-200

2、之间有多少个素数,并输出所有素数。1程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2.程序源代码:#includemath.hmain()intm,i,k,h=0,leap=1;printf(n);for(m=101;m=200;m+)k=sqrt(m+l);for(i=2;iv=k;i+)if(m%i=0)leap=0;break;if(leap)printf(%-4d,m);h+;if(h%10=0)printf(n);leap=l;printf(nThetotalis%d,h);【程序3】题目:打印出所有的水仙花数”,所谓

3、“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。1程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:main()inti,j,k,n;printf(waterflowernumberis:);for(n=100;nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第_*7Jzo(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。2.程序源代码:/*zhengintisdividedyinshu*/main()intn

4、,i;printf(npleaseinputanumber:n);scanf(%d,&n);printf(%d=,n);for(i=2;iv=n;i+)while(n!=i)if(n%i=O)printf(”d*”,i);n=n/i;elsebreak;printf(%d,n);【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1程序分析:(ab)?a:b这是条件运算符的基本例子。2.程序源代码:main()intscore;chargrade;printf(pleaseinputascoren);scanf(%d

5、,&score);grade=score=90?A:(score=60?Bprintf(%dbelongsto%c,score,grade);【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1程序分析:利用辗除法。2.程序源代码:第一种做法:#includestdio.hvoidmain()intm,n,i;printf(”请输入两个正整数:”);scanf(%d%d,&m,&n);if(mn)i=m;elsei=n;while(m%i!=0)11(n%i!=0)i-;printf(%d和(1的最大公约为:%dn,m,n,i);第二种做法:#includestdio.hvoi

6、dmain()intm,n,r;printf(”请输入两个正整数:”);scanf(%d%d,&m,&n);if(m=a&cv=zllc=A&cv=Z)letters+;elseif(c=)space+;elseif(c=0&cv=9)digit+;elseothers+;printf(allinall:char=%dspace=%ddigits%dothers%dn,letters,space,digit,others);【程序8】题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。参

7、照P214例21程序分析:关键是计算出每一项的值。2.程序源代码:main()inta,n,count=l;longintsn=0,tn=0;printf(pleaseinputaandnn);scanf(%d,%d,&a,&n);printf(a=%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()

8、floatsn=100.0,hn=sn/2;intn;for(n=2;n=10;n+)sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2;/*第n次反跳高度*/printf(thetotalofroadis%fn,sn);printf(thetenthis%fmetern,hn);#includestdio.hmain()floath=100,s=100;inti=l;while(iv=10)h=h/2;printf(第2d次反弹的高度:%12.9f,第2(1次落地时经过的距离:12.8hn”,i,h,i,s);s=s+2*h;i+;【程序10题目:有1、2、3、4个数字,能

9、组成多少个互不相同且无重复数字的三位数?都是多少?1. 程序分析:可填在百位、十位、个位的数字都是1、2、3、4o组成所有的排列后再去掉不满足条件的排列。2.程序源代码:main()inti,j,k;printf(n);for(i=l;iv5;i+)/*以下为三重循环*/for(j=l;jy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。2.程序源代码:main()intx,y,z,t;scanf(%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的值*/

10、if(yz)t=y;y=z;z=t;/*交换z,y的值*/printf(smalltobig:%d%d%dn,x,y,z);【程序13】题目:用*号输出字母C的图案。1程序分析:可先用号在纸上写出字母C,再分行输出。2.程序源代码:#includestdio.hmain()printf(HelloC-world!n);printf(*n”);printf(*n”);printf(*n);printf(*n”);【程序14题目:输出9*9口诀。1程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2.程序源代码:#includestdio.hmain()inti,j,result;printf(n);for(i=l;ivl0;i+)for(j=l;jvlO;j+)/*如果是jvi就是输出三角形的乘法表*/result=i*j;printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/printf(n);/*每一行后换行*/【程序15】题目:要求输出国际象棋棋盘。1程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2.程序源代码:#includestdio.h

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

当前位置:首页 > 办公文档 > 解决方案

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