南开大学09年计算机试题:圆面积计算与函数求和

需积分: 3 3 下载量 47 浏览量 更新于2024-08-01 收藏 1.62MB DOC 举报
"09年南开100套题,包含编程题目,涉及圆面积计算和函数求和问题" 在给定的编程题目中,我们有两个重点知识点:一是计算圆的面积,二是实现一个特定函数的求和。 首先,我们来看第一个知识点——计算圆的面积。题目提供了一个名为`fun`的函数,要求根据圆的半径`r`计算出二分之一的圆面积。在C语言中,圆面积的公式是π乘以半径的平方,即`π * r * r`。在提供的代码中,填空位置1应填写`r*r`,使得函数能够正确计算半径的平方。函数的主体部分已经包含了常数π(3.14159),因此只需要将半径的平方项补全即可。在主函数`main`中,用户被要求输入圆的半径`x`,填空位置2应使用`&x`传递半径的地址给`scanf`函数,以便读取用户输入的值。填空位置3直接使用`x`作为函数`fun`的参数,传入半径值。 第二个知识点是实现一个特定函数的求和。函数`fun`需要计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值,其中f(x)的定义为f(x)=[pic]。这里的`[pic]`通常代表对数函数ln(x),但在题目中没有明确给出,我们需要根据题目描述填充函数体。题目示例给出了当n为5时,函数值应为10.407143。函数f(x)的计算规则是:如果x等于0或2,返回0;如果x小于0,返回`(x-1)/(x-2)`;如果x大于0,返回`(x+1)/`。在给出的程序中,错误在于`elseif`的使用,C语言中没有`elseif`关键字,应该使用`else if`。因此,修复后的函数`f(double x)`应该是: ```c double f(double x) { if (x == 0.0 || x == 2.0) return 0.0; else if (x < 0.0) return (x - 1) / (x - 2); else return (x + 1) / ; } ``` 这里需要注意的是,由于题目中`f(x)`的完整表达式缺失,最后一部分`/(x + 1)`的分母应替换为相应的对数函数`ln(x + 1)`。但实际的实现需要根据完整的函数定义进行。 这两个编程题目考察了基本的数学公式应用、函数调用以及C语言的基础语法,如条件判断、输入输出函数的使用等。解决这些问题需要扎实的编程基础和对数学公式的理解。