ImageVerifierCode 换一换
格式:DOC , 页数:56 ,大小:258KB ,
资源ID:4517375      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4517375.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(百条C语言经典源码程序.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

百条C语言经典源码程序.doc

1、百条 C语言 经典源码程序】~~ 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去       掉不满足条件的排列。  2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++)    /*以下为三重循环*/  for(j=1;j<5;j++)    for (k=1;k<5;k++)    {     if (i!=k&&i!=j&&j!=k)   

2、 /*确保i、j、k三位互不相同*/     printf("%d,%d,%d\n",i,j,k);    } }    【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后       的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include "math.h" main() { long int i,x,y,z; for (i=1;i<100000;i++)

3、  { x=sqrt(i+100);   /*x为加上100后开方后的结果*/   y=sqrt(i+268);   /*y为再加上168后开方后的结果*/    if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/     printf("\n%ld\n",i);  } } ============================================================== 【程序4】 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,

4、应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 2.程序源代码: main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/ {  case 1:sum=0;break;  case 2:sum=31;break;  case 3:sum=59;break;

5、  case 4:sum=90;break;  case 5:sum=120;break;  case 6:sum=151;break;  case 7:sum=181;break;  case 8:sum=212;break;  case 9:sum=243;break;     case 10:sum=273;break;  case 11:sum=304;break;  case 12:sum=334;break;  default:printf("data error");break; } sum=sum+day;  /*再加上某天的天数*

6、/  if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/   leap=1;  else   leap=0; if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++; printf("It is the %dth day.",sum);} ============================================================== 【程序5】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想

7、办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 2.程序源代码: main() { int x,y,z,t; scanf("%d%d%d",&x,&y,&z); if (x>y) {t=x;x=y;y=t;} /*交换x,y的值*/ if(x>z) {t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z) {t=y;y=z;z=t;}/*交换z,y的值*/ printf("small to big: %d %d %d\n",x,y,

8、z); } ============================================================== 【程序6】 题目:用*号输出字母C的图案。 1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 2.程序源代码: #include "stdio.h" main() { printf("Hello C-world!\n"); printf(" ****\n"); printf(" *\n"); printf(" * \n"); printf(" ****\n"); } ==========

9、 【程序8】 题目:输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 2.程序源代码: #include "stdio.h" main() {  int i,j,result;  printf("\n");  for (i=1;i<10;i++)   { for(j=1;j<10;j++)     {      result=i*j;      printf("%d*%d=%-3d",i,j,result)

10、/*-3d表示左对齐,占3位*/     }    printf("\n");/*每一行后换行*/   } } ==============================================================  【程序11】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月    后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 2.程序源代码: main() { long f1,f2

11、 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; /*前两个月加起来赋值给第三个月*/  } } ============================================================== 【程序12】 题目:判断101-200之间有多少个素数,并输出所有素

12、数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,       则表明此数不是素数,反之是素数。        2.程序源代码: #include "math.h" main() {  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("%-

13、4d",m);h++;         if(h%10==0)         printf("\n");         }    leap=1;   }  printf("\nThe total is %d",h); } ============================================================== 【程序13】 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数    本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 1

14、程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2.程序源代码: main() { int i,j,k,n; printf("'water flower'number is:");  for(n=100;n<1000;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);    }  } p

15、rintf("\n"); } ============================================================== 【程序14】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:  (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,  重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复

16、执行第一步。 2.程序源代码: /* zheng int is divided yinshu*/ main() { int n,i; printf("\nplease input a number:\n"); 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;   } } print

17、f("%d",n);} ============================================================== 【程序15】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,    60分以下的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 2.程序源代码: main() {  int score;  char grade;  printf("please input a score\n");  scanf("%d",&score);

18、  grade=score>=90?'A':(score>=60?'B':'C');  printf("%d belongs to %c",score,grade); }   --------------------------------------------------------------------------------   ============================================================== 【程序17】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析

19、利用while语句,条件为输入的字符不为'\n'.        2.程序源代码: #include "stdio.h" main() {char c;  int letters=0,space=0,digit=0,others=0;  printf("please input some characters\n");  while((c=getchar())!='\n')  {  if(c>='a'&&c<='z'||c>='A'&&c<='Z')   letters++;  else if(c==' ')   space++;   

20、 else if(c>='0'&&c<='9')        digit++;      else        others++; } printf("all in all:char=%d space=%d digit=%d others=%d\n",letters, space,digit,others); } ============================================================== 【程序18】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2

21、222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 2.程序源代码: main() {  int a,n,count=1;  long int sn=0,tn=0;  printf("please input a and n\n");  scanf("%d,%d",&a,&n);  printf("a=%d,n=%d\n",a,n);  while(count<=n)  {   tn=tn+a;   sn=sn+tn;   a=a*10;   ++count;  } pri

22、ntf("a+aa+...=%ld\n",sn); } ============================================================== 【程序19】 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程    找出1000以内的所有完数。 1. 程序分析:请参照程序<--上页程序14.  2.程序源代码: main() { static int k[10]; int i,j,n,s; for(j=2;j<1000;j++)  {  n=-1;  s=j;

23、   for(i=1;i   {    if((j%i)==0)    { n++;     s=s-i;     k[n]=i;    }   }  if(s==0)  {  printf("%d is a wanshu",j);  for(i=0;i  printf("%d,",k[i]);  printf("%d\n",k[n]);  } } } ==============================================================  【程序20】 题目:一球从100米高度自由落下,

24、每次落地后反跳回原高度的一半;再落下,求它在    第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 %f\n",sn); printf("the tenth is %f meter\n",hn); }

25、       --------------------------------------------------------------------------------    【程序21】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个    第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下    的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int day,x1

26、x2; day=9; x2=1; while(day>0)  {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/  x2=x1;  day--;  } printf("the total is %d\n",x1); } ============================================================== 【程序22】 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定    比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和

27、x,z比,请编程序找出    三队赛手的名单。  1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,       则表明此数不是素数,反之是素数。        2.程序源代码: 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!=

28、'x'&&k!='z')    printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);    }   }  } } ============================================================== 【程序23】  题目:打印出如下图案(菱形) * *** ****** ******** ****** *** * 1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重       for循环,第一层控制行,第二层控制列。 

29、 2.程序源代码: main() { int i,j,k; for(i=0;i<=3;i++)  {  for(j=0;j<=2-i;j++)   printf(" ");  for(k=0;k<=2*i;k++)   printf("*");  printf("\n");  } for(i=0;i<=2;i++)  {  for(j=0;j<=i;j++)   printf(" ");  for(k=0;k<=4-2*i;k++)   printf("*");  printf("\n");  } } ==

30、 【程序24】  题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 1.程序分析:请抓住分子与分母的变化规律。  2.程序源代码: main() { int n,t,number=20; float a=2,b=1,s=0; for(n=1;n<=number;n++)  {  s=s+a/b;  t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/

31、  } printf("sum is %9.6f\n",s); } ============================================================== 【程序25】  题目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。  2.程序源代码: main() { float n,s=0,t=1; for(n=1;n<=20;n++)  {  t*=n;  s+=t;  } printf("1+2!+3!...+20!=%e\n",s); } ===

32、 【程序26】  题目:利用递归方法求5!。 1.程序分析:递归公式:fn=fn_1*4! 2.程序源代码: #include "stdio.h" main() { int i; int fact(); for(i=0;i<5;i++)  printf("\40:%d!=%d\n",i,fact(i)); } int fact(j) int j; { int sum; if(j==0)  sum=1;

33、else  sum=j*fact(j-1); return sum; } ============================================================== 【程序27】  题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 1.程序分析: 2.程序源代码: #include "stdio.h" main() { int i=5; void palin(int n);  printf("\40:"); palin(i); printf("\n"); } void

34、palin(n) int n; { char next; if(n<=1)  {  next=getchar();  printf("\n\0:");  putchar(next);  } else  {  next=getchar();  palin(n-1);  putchar(next);  } } ============================================================== 【程序28】  题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人

35、岁数,他说比第    3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后     问第一个人,他说是10岁。请问第五个人多大? 1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道       第四人的岁数,依次类推,推到第一人(10岁),再往回推。 2.程序源代码: age(n) int n; { int c; if(n==1) c=10; else c=age(n-1)+2; return?; } main() { printf("%d",age(5)); }

36、 ============================================================== 【程序29】  题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)  2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*分解出万位*/ b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分

37、解出百位*/ d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);   else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);     else if (d!=0) printf("there are 2, %ld %ld\n",

38、e,d);       else if (e!=0) printf(" there are 1,%ld\n",e); } ============================================================== 【程序30】  题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。    1.程序分析:同29例 2.程序源代码: main( ) { long ge,shi,qian,wan,x; scanf("%ld",&x); wan=x/10000; qian=x%

39、10000/1000; shi=x%100/10; ge=x%10; if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/  printf("this number is a huiwen\n"); else  printf("this number is not a huiwen\n"); }     --------------------------------------------------------------------------------  程序31】 题目:请输入星期几的第一个字母来判断一下是星期

40、几,如果第一个字母一样,则继续    判断第二个字母。 1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 2.程序源代码: #include void main() { char letter; printf("please input the first letter of someday\n"); while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/ { switch (letter) {case 'S':printf("please input

41、 second letter\n");      if((letter=getch())=='a')       printf("saturday\n");      else if ((letter=getch())=='u')          printf("sunday\n");        else printf("data error\n");      break; case 'F':printf("friday\n");break; case 'M':printf("monday\n");break; case 'T':printf("pl

42、ease input second letter\n");      if((letter=getch())=='u')       printf("tuesday\n");      else if ((letter=getch())=='h')          printf("thursday\n");        else printf("data error\n");      break; case 'W':printf("wednesday\n");break; default: printf("data error\n");   }  

43、} }   ============================================================== 【程序36】 题目:求100之内的素数    1.程序分析: 2.程序源代码: #include #include "math.h" #define N 101 main() { int i,j,line,a[N]; for(i=2;i

44、a[i]!=0&&a[j]!=0)   if(a[j]%a[i]==0)   a[j]=0;} printf("\n"); for(i=2,line=0;i

45、可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,       下次类推,即用第二个元素与后8个进行比较,并进行交换。         2.程序源代码: #define N 10 main() {int i,j,min,tem,a[N]; /*input data*/ printf("please input ten num:\n"); for(i=0;i

46、rintf("%5d",a[i]); printf("\n"); /*sort ten num*/ for(i=0;ia[j]) min=j; tem=a[i]; a[i]=a[min]; a[min]=tem; } /*output data*/ printf("After sorted \n"); for(i=0;i

47、 【程序38】 题目:求一个3*3矩阵对角线元素之和  1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 2.程序源代码: main() { float a[3][3],sum=0; int i,j; printf("please input rectangle element:\n"); for(i=0;i<3;i++)  for(j=0;j<3;j++)  scanf("%f",&a[i][j]); for(i=0;i<3;i++)  su

48、m=sum+a[i][i]; printf("duijiaoxian he is %6.2f",sum); } ============================================================== 【程序39】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后      此元素之后的数,依次后移一个位置。  2.程序源代码: main() { int a[11]={1,4,6,9,13,16,19,

49、28,40,100}; int temp1,temp2,number,end,i,j; printf("original array is:\n"); for(i=0;i<10;i++)  printf("%5d",a[i]); printf("\n"); printf("insert a new number:"); scanf("%d",&number); end=a[9]; if(number>end)  a[10]=number; else  {for(i=0;i<10;i++)   { if(a[i]>number)    {t

50、emp1=a[i];     a[i]=number;    for(j=i+1;j<11;j++)    {temp2=a[j];     a[j]=temp1;     temp1=temp2;    }    break;    }   } } for(i=0;i<11;i++)  printf("%6d",a[i]); } ============================================================== 【程序40】 题目:将一个数组逆序输出。 1.程序分析:用第一个与最后一

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服