江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
全国等考二级C语言2009上机模拟2
一、填空题
请补充fun函数,该函数的功能是:判断一个年份是否为闰年。
例如,2007年不是闰年,2008是闰年。
请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。
注意:部分源程序给出如下。
# include
# include
int fun(int n)
{
  int flag=0;
  if(n%4==0)
    if(___1___)
      flag=1;
  if(___2___)
    flag=1;
  return ___3___;
}
main()
{
  int year;
  printf("Input the year:");
  scanf("%d",&year);
  if(fun(year))
    printf("%d is a leap year.\n",year);
  else
    printf("%d is not a leap year.\n",year);
}
二、改错题
下列给定程序中,fun函数的功能是:根据形参n,计算如下公式的值。
 s=1+1/2+1/3+...+1/n
例如,若输入5,则应输出2.28333。
请修改程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。
# include
# include
double fun(int n)
{
  double s=1.0;
  int i;
  /******error**********/
  for(i=2;i<=n;i++)
    s+=1.0/k;
  /******error**********/
  ___填 空___
}
main()
{
  int n;
  printf("\nplease enter 1 integer numbers:\n");
  scanf("%d",&n);
  printf("\n\nthe result is %lf\n",fun(n));
}
三、编程题
请编写函数fun,它的功能是:求出1到500之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在b所指的数组中,通过m返回这些数的个数。
请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
注意:部分源程序给出如下。
# include
# include
void fun(int *b,int *m)
{
  
}
main()

  int a[500],m,i;
  FILE *out;
  fun(a,&m);
  out=fopen("outfile.dat","w");
  for(i=0;i    if((i+1)==0)
    {
      printf("]\n",a[i]);
      fprintf(out,"d\n",a[i]);
    }
    else
    {
      printf("],",a[i]);
      fprintf(out,"%d,",a[i]);
    }
  fclose(out);
}