活动设计题  
    请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
    例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。
    注意:要求n的值不大于100。
    部分源程序在文件PROG1.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    #include<stdio.h>
    double fun(int n)
    {     }
    NONO()
    {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
    FILE *rf, *wf; int n, i; double s;
    rf=fopen('in.dat', 'r');
    wf=fopen('out.dat', 'w');
    for(i=0; i<10; i++) {
    fscanf(rf, '%d', &n);
    s=fun(n);
    fprintf(wf, '%lf\n', s);
    }
    fclose(rf); fclose(wf);
    }
    main()
    {int n; double s;
    printf('\nInput n: '); scanf('%d', &n);
    s=fun(n);
    printf('\n\ns=%f\n', s);
    NONO();
    }
 
【正确答案】int i; double sum=0.0; for(i=1; i<=n; i++) if(i%5==0||i%9==0) /*被5或9整除*/ sum+=1.0/i; return sum; 答案考生文件夹
【答案解析】程序功能是计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 (1)首先,通过循环,判断小于等于n的每一个整数是否符合题干中的要求。其中的判断条件能否被5或者被9整除为i%5==0||i%9==0。 (2)然后求得符合(1)要求的数的倒数的累加和。 [考点] for循环结构、if语句及其构成的选择。