全国二级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); } |