问答题 1.  编写fun()函数,它的功能是:利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。
    yn+1=cos(yn)
    迭代步骤如下:
    (1)取y1初值为0.0;
    (2)y0=y1,把y1的值赋给y0;
    (3)y1=cos(y0),求出一个新的y1;
    (4)若y0-y1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);
    (5)所求y1就是方程cos(y)-y=0的一个实根,将其作为函数值返回。
    程序将输出结果Result=0.739085。
    请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。
    部分源程序给出如下。
    试题程序:
    #include<conio.h>
    #include<inath.h>
    #include<stdio.h>
    float fun()
    {
    }
    void main()
    {
    FILE*out;
    float cos=fun();
    printf("Result=%f\n",cos);
    out=fopen("outfile.dat","w");
    fprintf(out,"%f",cos);
    fclose(out);
    }
【正确答案】float y1=0.0,y0;
   do
   {//进行迭代
   y0=y1;
   y1=cos(y0);
   }
   while(fabs(y0-y1)>=1e-6);//判断迭代循环条件
   return y1;
【答案解析】 进入fun()函数,根据题中给出的求解步骤,首先y1初值为0.0;若y0-y1的绝对值大于0.000001就循环进行迭代,即“y0=y1; y1=cos(y0);”,直到满足题目中的要求,返回y1,即实根。本题考查了do-while的用法。