"全国计算机二级C语言机试题库"

需积分: 13 1 下载量 86 浏览量 更新于2024-01-19 收藏 334KB DOC 举报
在全国计算机二级C语言机试题库中,考生需要对c语言二级考试题目做好充分的准备。在考试题目中,给定了一个程序,其中包含了一个函数fun,其功能是计算S=f(-n) f(-n+1) … f(0) f(1) f(2) … f(n)的值。例如,当n为5时,函数值应为10.407143。而f(x)函数的定义如下: f(x)= 请改正程序中的错误,以确保能够得出正确的结果。需要注意的是,不得改动main函数,也不得增加或删除任何行,并且不得更改程序的结构。 试题程序如下: ```c #include <stdio.h> #include <math.h> double f(int x) { if(x <= 0) { return -1*pow(x, 3) + 5; } else { return 1/x + sqrt(x); } } int fun(int n) { int i; double sum = 0.0; for(i = -n; i <= n; i++) { sum += f(i); } return (int)(sum * 100000 + 0.5) / 100000.0; } int main() { int n; scanf("%d", &n); printf("%f\n", fun(n)); return 0; } ``` 需要修改的地方在于f(x)函数的定义部分。根据给定的f(x)函数,我们可以改写如下: ```c double f(int x) { if(x <= 0) { return -1*pow(x, 3) + 5; } else { return 1.0/x + sqrt(x); } } ``` 在这里,我们将return 1/x改为return 1.0/x,以确保除法运算得到的是浮点数而不是整数。经过这一修改后,程序将能够正确地计算出S的值,满足题目要求。 以上就是对程序的改正,不仅修正了错误,还保持了原有程序的结构和逻辑,确保了程序的正确性。通过这样的改动,考生可以更好地准备全国计算机二级C语言机试,为考试做好充分的准备。