使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是根据整型形参n,计算如下公式的值。A1=1,A2=,A3=,…,An= 若n=10,则应输出0.61797

admin2023-02-27  82

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是根据整型形参n,计算如下公式的值。A1=1,A2=,A3=,…,An=
  若n=10,则应输出0.617977。   
  请改正程序中的错误,使它能得出正确的结果。  
  注意:部分源程序在文件mcdi1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!   
  试题程序:   
1 #include<stdlib.h>
2 #include<conio.h>
3 #include<stdio.h>
4 /*********found*********/
5 int fun(int n)
6 {float A=1;int i;
7 /*********found*********/
8  for(i=2;i<n;i++)
9    A=1.0/(1+A);
10  return A;
11 }
12 void main()
13 {int n;
14 system("CLS");
15  printf("\nPlease enter n:");
16 scanf("%d",&n);
17 printf("A%d=%lf\n",n,fun(n));
18 }

选项

答案(1)float fun(int n) (2)for(i=2;i<=n;i++)

解析 (1)根据函数的返回值可知,函数应定义为float型。    (2)该题中函数fun()的作用是计算公式前n项的和。而公式的组成方式是:第n项的分母是1加第n-1项的值,分子为1。如果循环累加按题目中给出的"for(i=2;j<n;i++)"执行,当n=2时循环不会执行,程序将得不到想要的结果。因此循环变量的取值范围应包括n,循环的条件为j<=n。
转载请注明原文地址:https://kaotiyun.com/show/0D0D777K
0

最新回复(0)