全国计算机等级考试二级教程——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");
}
}
}