使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.C。在此程序中,编写函数fun(),其功能是根据以下公式计算s,并将计算结果作为函数值返回,n通过形参传入。 例如,当n的值为11时,函数

admin2023-02-27  26

问题 使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.C。在此程序中,编写函数fun(),其功能是根据以下公式计算s,并将计算结果作为函数值返回,n通过形参传入。

    例如,当n的值为11时,函数的值为1.833333。
    注意:部分源程序给出如下。
    请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
    试题程序:
1 #include<stdlib.h>
2 #include<conio.h>
3 #include<stdio.h>
4 #include<string.h>
5 float fun (int n)
6 {
7
8 }
9 void main()
10 {
11    int n;
12    float s;
13    system("CLS");
14    printf("\nPlease enter N:");
15    scanf("%d",&n);
16    s=fun(n);
17    printf("The result is:%f\n",s);
18 }

选项

答案 1 float fun(int n) 2 { 3 int i,s1=0; 4 floal s=0.0; 5 for(i=1;i<=n;i++) 6 { 7 s1=s1+i;/*求每一项的分母*/ 8 s=s+1.0/s1;/*求多项式的值*/ 9 } 10 return s; 11 }

解析 首先需要根据题意分析表达式的规律,得出通项,然后完成程序语句。
    本题中公式的规律类似于求1+2+…+n的倒数之和。可以通过for循环语句来实现第1项到第n项的变化。先根据题目要求定义变量,注意该变量的数据类型。然后对其进行初始化操作,因为该变量相当于累加器,所以初值应为0(或0.0,根据变量数据类型来确定),再通过for循环语句来完成累加过程。
    本题中s1用来表示每—项的分母,每一项的分母都是由前一项分母加项数得到的。注意,由于s1定义成一个整型,因此在s=s+1.0/s1语句中不能把1.0写成1。
转载请注明原文地址:https://kaotiyun.com/show/EP0D777K
0

最新回复(0)