【 tulaoshi.com - 编程语言 】
                             
                                  题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后天天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。       
  1.程序分析:采取逆向思维的方法,从后往前推断。  
  2.程序源代码:  
  main()
  {
  int day,x1,x2;
  day=9;
  x2=1;
  while(day0)
   {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
   x2=x1;
   day--;
   }
  printf("the total is %d",x1);
  }
  ==============================================================    
  题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和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!='x'&&k!='z')
   printf("order is a--%cb--%cc--%c",i,j,k);
   }
  }
   }
  }
  ==============================================================        
  题目:打印出如下图案(菱形) 
  *
  ***
  ******
  ********
  ******
  ***
  *  
  1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。   
  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("");
   }
  for(i=0;i=2;i++)
   {
   for(j=0;j=i;j++)
  printf(" ");
   for(k=0;k=4-2*i;k++)
  printf("*");
   printf("");
   }
  }
  ==============================================================     
  题目:有一分数序列: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的作用*/
   }
  printf("sum is %9.6f",s);
  }
  ==============================================================     
  题目:求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",s);
  }
  ==============================================================     
  题目:利用递归方法求5!。  
  1.程序分析:递归公式:fn=fn_1*4!  
  2.程序源代码:  
  #include "stdio.h"
  main()
  {
  int i;
  int fact();
  for(i=0;i5;i++)
   printf("40:%d!=%d",i,fact(i));
  }
  int fact(j)
  int j;
  {
  int sum;
  if(j==0)
   sum=1;
  else
   sum=j*fact(j-1);
  return sum;
  }
  ==============================================================        
  题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。  
  1.程序分析:  
  2.程序源代码:  
  #include "stdio.h"
  main()
  {
  int i=5;
  void palin(int n);
  printf("40:");
  palin(i);
  printf("");
  }
  void palin(n)
  int n;
  {
  char next;
  if(n=1)
   {
   next=getchar();
   printf("