全国等考二级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 { printf("]\n",a[i]); fprintf(out,"d\n",a[i]); } else { printf("],",a[i]); fprintf(out,"%d,",a[i]); } fclose(out); } |