中山大学2009软件工程期末试题:C语言程序设计参考答案

需积分: 0 0 下载量 130 浏览量 更新于2024-08-05 收藏 120KB PDF 举报
"中山大学软件学院2009级软件工程专业《程序设计(I)》期末试题参考答案" 这份资料是一份针对2009年秋季学期中山大学软件学院软件工程专业学生的程序设计课程期末试题的参考答案。试题包含了选择题和简答题,主要涉及C语言编程基础和算法实现。 在选择题部分(Section A: Multiple Choices),题目并未给出具体的选项,但从常规的C语言考试来看,这部分可能涵盖了变量、数据类型、运算符、流程控制语句、函数等基本概念。 简答题部分(Section B: Short Answer)则具体展示了以下几个知识点: 1. 计算两点之间的欧几里得距离(Distance Calculation): - (a) 提供了计算两点(x1, y1)和(x2, y2)之间距离的公式,使用平方根函数sqrt()和平方运算。 - (b) 解决了求解二次方程ax^2 + bx + c = 0的根的公式,即使用公式x = (-b ± sqrt(b^2 - 4ac)) / (2a)。 - (c) 计算向量(c, 0)在单位向量(a, b)上的投影,使用了绝对值函数fabs()和向量长度的计算。 2. 计算π的近似值(Pi Approximation): - 给出一个函数double pi(int n),通过求和1/i^2来逼近π/6,然后返回sqrt(6 * sum)。这种方法是著名的调和级数求π的近似值。 3. 结构体定义与操作(Structures and Operations): - 定义了一个名为`circle`的结构体,包含一个点`point`的成员和半径`r`。 - 实现了计算圆面积`getArea()`和周长`getCircumference()`的函数,以及判断点是否在圆内的`isInside()`函数。 - `isInside`函数利用了点到圆心距离与半径的关系来判断。 4. 十进制转二进制(Decimal to Binary Conversion): - 定义了一个函数`dec2bin()`,将整数n转换为二进制数组b[],并逆序输出。 5. 找最大值(Find Maximum Value): - 提供了一个函数`getMax()`,通过遍历数组找到最大值,这里可能考察了数组操作和循环控制。 这些题目和答案覆盖了C语言的基础语法、数学运算、数据结构(结构体)、算法(如距离计算、求根、求π、二进制转换)以及基本的编程技巧(如遍历数组找最大值)。这样的试题旨在检验学生对C语言的理解和应用能力。