全国计算机等级考试二级教程——C语言程序设计(2021年版)
编程题答案(第5章):
[5.17]
编写程序,求1-3+5-7+…-99+101的值。
#include<stdio.h>
#include<math.h>
main()
{int n,s,a,sum;
 n=1,s=-1,a=sum=0;
 while(fabs(a)<101)
 {s=-s;
  a=(2*n-1)*s;
  n++;
  sum+=a;
 }
 printf("sum=%d",sum);
}
[5.18]
编写程序,求e的值, 。
。
(1)用for循环,计算前50项。
(2)用while循环,要求直至最后一项的值小于 。
。
(1)
#include<stdio.h>
main()
{int n;
 double a,b;
 for(n=1,a=b=1.0;n<=49;n++)
 {a*=n;
  b+=(1/a);
 }
 printf("e=%f",b);
}
(2)
#include<stdio.h>
main()
{int n=1;
 double a=1.0,b=1.0;
 while((1/a)>=1e-6)
 {a*=n;
  b+=(1/a);
  n++;
 }
 printf("e=%f",b);
}
[5.19]
编写程序,输出从公元2000年至公元3000年所有闰年的年号,每输出10个年号换一行。判断公元年是否为闰年的条件是:
(1)公元年数如能被4整除,而不能被100整除,则是闰年。
(2)公元年数能被400整除也是闰年。
#include<stdio.h>
main()
{int a,k=0;
 for(a=2000;a<=3000;a++)
 {if( (!(a%400))||((a%100)&&(!(a%4))) )
  {printf("%d ",a);
  k++;
  if(!(k%10)) printf("\n");
  }
 }
}
[5.20]
编写程序,打印以下图形;
*
***
*****
*******
*****
***
*
#include<stdio.h>
main()
{int i,j,k;
 for(k=1;k<=7;k++)
 {if(k<=4) {for(i=1;i<=(4-k);i++) 
            printf(" ");
            for(j=1;j<=(2*k-1);j++)
            printf("*");
            printf("\n");
		   }
  else {for(i=1;i<=(k-4);i++) 
            printf(" ");
            for(j=1;j<=(15-2*k);j++)
            printf("*");
            printf("\n");
  }		   
 }
 } 










