全国二级C语言计算机等级考试2009上机模拟6
一、填空题
请补充函数fun,它的功能是:计算并输出m(包括m)以内能被2或5整除的所有自然数的倒数之和。
例如,在主函数中从键盘给m输入21后,输出为:s=1.731151。
请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。
注意:部分源程序给出如下。
# include
double fun(int m)
{
  int j;
  double toal=0.0;
  for(j=1;___1___;j++)
    if(j%2==0 ___2___ j%5==0)
      toal+=___3___/j;
  return toal;
}
main()
{
  int m;
  double f;
  printf("\nInput m: ");
  scanf("%d",&m);
  f=fun(m);
  printf("\n\ns=%f\n",f);
}
二、改错题
下列给定程序中,函数fun的功能是:按以下递归公式求函数值。
        10     (n=1)
fun(n)= 
fun(n-1)+2 (n>1)
例如,当给n输入6时,函数值为20。
请修改程序中的错误,得出正确的结果。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。
# include
/********error********/
int fun(n)
{
  int m;
  /********error********/
  if(n=1)
    m=10;
  else
    m=fun(n-1)+2;
  return (m);
}
main()
{
  int n;
  printf("Enter n: ");
  scanf("%d",&n);
  printf("The result:%d\n\n",fun(n));
}
三、编程题
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。
例如,原来的字符串为Justabc,则排序后输出为Jutsbac。
请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
注意:部分源程序给出如下。
# include
# include
# include
# include
void fun(char *str,int n)
{
 
}
main()
{
    char str[10];
    FILE *out;
  printf("input string with seven characters:");
  gets(str);
  fun(str,7);
  printf("\n%s",str);
  out=fopen("outfile.dat","w");
  strcpy(str,"Justsdf");
  fprintf(out,"%s",str);
  fclose(out);
}