全國計算機(jī)等級考試三級C語言上機(jī)題21-25

字號:

☆題目21
    下列程序prog1.c的功能是:利用以下所示的簡單迭代方法求方程:cos(x)-x=0的一個實根。
    Xn+1=cos(Xn)
    迭代步驟如下:
    (1)取X1初值為0.0;
    (2)X0=X1,把X1的值賦給X0;
    (3)X1=cos(X0),求出一個新的X1;
    (4)若X0-X1的絕對值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2);
    (5)所求X1就是方程cos(X)-X=0的一個實根,作為函數(shù)值返回。
    請編寫函數(shù)countvalue()實現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件OUT17.DAT中。
    部分源程序已給出。
    請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。
    #include
    #include
    #include
    float countvalue()
    { float x0,x1;
    x1=0.0;
    do{ x0=x1;
    x1=cos(x0);
    }while(fabs(x0-x1)>=0.000001);
    return x1;
    }
    main()
    {
    clrscr();
    printf("實根=%f\n",countvalue());
    printf("%f\n",cos(countvalue())-countvalue());
    writeDat();
    }
    writeDat()
    {
    FILE *wf;
    wf=fopen("OUT17.DAT","w");
    fprintf(wf,"%f\n",countvalue());
    fclose(wf);
    }
    ★題目22
    請編寫函數(shù)countvalue(),它的功能是:求n以內(nèi)(不包括n)同時能被3與7整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回,最后結(jié)果s輸出到文件out.dat中。
    例如若n為1000時,函數(shù)值應(yīng)為:s=153.909064。
    部分源程序存在文件prog1.c中。
    請勿改動主函數(shù)main()和輸入輸出數(shù)據(jù)函數(shù)progReadWrite()的內(nèi)容。
    #include
    #include
    #include
    double countvalue(int n)
    { int i;
    double s=0.0;
    for(i=1;i    if(i%21==0) s+=i;
    return sqrt(s);
    }
    main()
    {
    clrscr();
    printf("自然數(shù)之和的平方根=%f\n",countvalue(1000));
    progReadWrite();
    }
    progReadWrite()
    {
    FILE *fp,*wf;
    int i,n;
    float s;
    fp=fopen("in.dat","r");
    if(fp==NULL){
    printf("數(shù)據(jù)文件in.dat不存在!");
    return;
    }
    wf=fopen("out.dat","w");
    for(i=0;i<10;i++){
    fscanf(fp,"%d\n",&n);
    s=countvalue(n);
    fprintf(wf,"%f\n",s);
    }
    fclose(fp);
    fclose(wf);
    }