网站首页  学校简介  PHP培训  就业类培训  短期类培训  设计类培训  会计培训  电脑园地  证书说明  在线留言  上课地址  讨论区


    就业求职课程推荐
PHP开发工程师就业
ASP.net开发工程师
网页设计师就业班
平面设计师就业班
室内设计师就业班
专业排版师就业班

    计算机培训课程
LAMP开发工程师培 ASP开发工程师培训
DIV CSS网站布局培 平面设计师培训
电脑维修工程师培 计算机二级培训
飞腾排版师培训 华光排版师培训
商务办公师培训 室内设计师培训
网页设计师培训 PHP开发工程师培训
计算机一级培训 Linux网络工程培训
     
    您现在的位置: >> 中亚首页 >> 电脑园地 >> C语言经典题目题解之四  
     
 
C语言经典题目题解之四
来源:北京中亚学校  发表时间:2007年6月17日  共有人访问

【程序16】
一、题目:求1+2!+3!+...+20!的和

二、程序分析:此程序只是把累加变成了累乘。

三、程序源代码

 main()
 {float n,s=0,t=1;
 for(n=1;n<=20;n++)
   {
   t*=n;
   s+=t;
   }
   printf("1+2!+3!...+20!= %en",s);
 }

 

【程序17】
一、题目:利用递归方法求5!。

二、程序分析:递归公式:fn=fn_1*4!

三、程序源代码

#include "stdio.h"
main()
{ int i;
  int fact();
  for(i=0;i<=5;i++)
    printf("%d!=%dn",i,fact(i));
}
int fact(int j)
  {  int sum;
     if(j==0)
      sum=1;
      else
      sum=j*fact(j-1);
       return sum;
     }

 

【程序18】
一、题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

二、程序分析

三、程序源代码

#define N  5
void invert (int *s,int i,int j)
 { int t;
 if(i<j)
    { t=*(s+i);
    *(s+i)=*(s+j);
    *(s+j)=t;
     invert(s,i+1,j-1);
     }
}
 main()
 { int a[N],i;
 printf("please input 5 chars:n");
 for(i=0;i<N;i++)
 scanf("%c",a+i);
 invert(a,0,N-1);
 for(i=0;i<N;i++)
 printf("%c",a[i]);
 printf("n");
getch(); }

 

【程序19】
一、题目:判断101-200之间有多少个素数,并输出所有素数。

二、程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
       则表明此数不是素数,反之是素数。       

三、程序源代码

#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("%-4d",m);
       h++;
         if(h%10==0)
       printf("n");
          }
       leap=1;
         }
         printf("nThe total is %d",h);
 }


【程序20】

一、题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
    本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

二、程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

三、程序源代码

main()
   {
    int i,j,k,n;
    printf("water flower number is:nn");
    for(n=100;n<1000;n++)/*从100到1000之间每个数的循环*/
     {
     i=n/100;/* 求百位数 */
     j=n/10-i*10;/* 求十位数 */
     k=n%10;/* 求个位数 */
     if(n==i*i*i+j*j*j+k*k*k)
     printf("%4d",n);/* 比对三次方后的数的和,并输出 */
     }
     printf("n");
}

作者:北京中亚学校
标签:C语言
打印】 【关闭
 
     
中国总机电话实名:95001000转北京中亚学校 在线QQ:93946341 中亚电话:010-51692691 010-64178470 中亚邮箱:zhongya@vip.163.com
网络实名:北京PHP培训|北京电脑培训|北京中亚电脑学校|北京计算机学校|北京计算机培训学校|计算机培训
招聘信息 | 人才信息 | 就业指导 | 友情链接 | 证书查询 | 工具下载 | 网站建设
学校地址:北京市东城区东直门外东中街32号楼(东环广场路东侧)
电话:010-51692691 010-64178470 QQ:93946341
北京中亚学校版权©所有  京ICP备05011382号