使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是根据整型参数m,计算如下公式的值。 若m=2000,则应输出0.000160。 请改正程序中的错误,

admin2023-02-27  138

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun()的功能是根据整型参数m,计算如下公式的值。

  若m=2000,则应输出0.000160。
  请改正程序中的错误,使它能得出正确的结果。
  注意:部分源程序在文件modil.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
1 #include<stdlib.h>
2 #include<conio.h>
3 #include<stdio.h>
4 /*********found*********/
5 fun(int m)
6 {double y=0,d;
7   int i;
8 /*********found*********/
9   for(i=100,i<=m,i+=100)
10    {d=(double)i*(double)i;
11    y+=1.0/d;
12    }
13  return(y);
14 }
15 void main()
16 {int n=2000;
17  system("CLS");
18  printf("\nThe result is%1f\n",fun(n));
19 }

选项

答案(1)double fun(int m) (2)for(i=100;i<=m;i+=100)

解析 (1)题目要求在函数fun()中求公式前m项和。可用循环语句,每次计算其中的一项,然后累加。第
1处错误在于定义fun(int m)函数,由函数的返回值y可知此处应该定义为double fun(int m)。
    (2)"for(i=100,i<=m,i+=100)"中有一个简单的语法错误。for循环语句的形式为for(表达式
1;表达式2;表达式3),其表达式之间应以";"相隔。  
转载请注明原文地址:https://jikaoti.com/ti/zioiFFFM
0

最新回复(0)