《经典C例题与答案(11~20).pdf》由会员分享,可在线阅读,更多相关《经典C例题与答案(11~20).pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 .:.:经典c程序100例=11-20:.:.:.:经典c程序100例=11-20:.:.经典c程序100例=11-20经典c程序100例=11-20【程序11】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.2.程序源代码:#include stdio.h#include conio.h main()long f1,f2;int i;f1=f2=1;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f
2、2);if(i%2=0)printf(n);/*控制输出,每行四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来赋值给第三个月*/getch();=【程序12】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2.程序源代码:#include stdio.h#include conio.h#include math.h main()int m,i,k,h=0,leap=1;printf(n);for(m=101;m=200;
3、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);getch();=【程序13】Page 1 of 52012-4-11file:/D:st-editCzl100example1120.htm题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。1.程序分析:利用for
4、循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:#include stdio.h#include conio.h 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,n);getch();=【程序14】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行
5、分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。2.程序源代码:/*zheng int is divided yinshu*/#include stdio.h#include conio.h main()int n,i;printf(nplease input a number:n);scanf(%d,&n);printf(%d=,n);for(i
6、=2;i=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1.程序分析:(ab)?a:b这是条件运算符的基本例子。2.程序源代码:#include stdio.h#include conio.h main()Page 2 of 52012-4-11file:/D:st-editCzl100example1120.htm 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,scor
7、e,grade);getch();=【程序16】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。2.程序源代码:#include stdio.h#include conio.h main()int a,b,num1,num2,temp;printf(please input two numbers:n);scanf(%d,%d,&num1,&num2);if(num1=a&c=A&c=0&c=9)digit+;else others+;Page 3 of 52012-4-11file:/D:st-editCzl100example1120.htm printf
8、(all in all:char=%d space=%d digit=%d others=%dn,letters,space,digit,others);getch();=【程序18】题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制。1.程序分析:关键是计算出每一项的值。2.程序源代码:#include stdio.h#include conio.h main()int a,n,count=1;long int sn=0,tn=0;printf(please input a and
9、nn);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);getch();=【程序19】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123.编程 找出1000以内的所有完数。1.程序分析:请参照程序-上页程序14.2.程序源代码:#include stdio.h#include conio.h main()static int k10;int i,j,n,s;for(j=2;j1000;j+)n=-1;
10、s=j;for(i=1;ij;i+)if(j%i)=0)n+;s=s-i;kn=i;if(s=0)printf(%d is a wanshu,j);for(i=0;in;i+)printf(%d,ki);printf(%dn,kn);getch();Page 4 of 52012-4-11file:/D:st-editCzl100example1120.htm=【程序20】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?1.程序分析:见下面注释 2.程序源代码:#include stdio.h#include stdio.h 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,sn);printf(the tenth is%f metern,hn);getch();Page 5 of 52012-4-11file:/D:st-editCzl100example1120.htm