2013年3月计算机二级C语言机试题库(105套).doc
文档中的内容涉及的是计算机二级考试中的C语言相关题目,涵盖了填空、改错和编程等多个类型的问题。下面我将详细解析这些知识点: 1. **填空题**: - 给定程序计算公式 `1 + 1/2 + 1/3 + ...` 直到 `1/t` 的和,其中 `t` 是一个变量。这里要求填写的分别是常数3.0(用于判断是否小于1e-3),比较运算符`>`(判断是否大于1e-3),以及 `(t+1)`(计算下一项的分母)。 - 另一个填空题计算的是分数序列的和,例如 `1/1 + 2/3 + 3/5 + ...`。需要填写的包括函数定义(返回double类型),以及分数相加的正确方式(将a/b转换为double再相加)。 2. **改错题**: - 一个函数用于计算子字符串在主字符串中出现的次数,问题在于循环条件和子字符串结束标志的检查。需要将循环条件修正为`str[i]!='\0'`,并将子字符串结束条件改为`substr[k]!='\0'`。 - 变量交换的函数,问题在于没有遵循不使用额外变量的要求。应该将临时变量`t`用于交换,正确的代码是`t=*x; *x=y; y=t;`,同时去掉return语句。 3. **编程题**: - 编写函数求π的值,采用级数展开法,直到某项小于指定精度。这里使用了迭代,每次迭代更新`s`的值,直到`s1`小于0.0005为止。 - 统计字符串中数字字符出现的次数,通过遍历字符串并检查每个字符是否为数字来完成。最后将计数结果存储在`t`所指的变量中。 - 交换两个变量的值而无需额外变量,这是通过在一次操作中完成交换的,正确做法是`t = *x; *x = *y; *y = t;`。 4. **其他题目**: - 删除数组中的偶数,保留奇数。这需要遍历数组,将奇数移至数组开头,同时更新返回值表示奇数的个数。 - 计算两个正整数的最大公约数(GCD),可以使用欧几里得算法,交换变量以保持较小数为`b`,直到`b`变为0,此时的`a`就是GCD。 - 删除字符串中的*号,需要逐字符检查,如果不是*号则将其添加到新字符串中。 以上就是这些题目涉及的C语言知识点,包括循环、条件判断、函数定义与调用、字符串处理、数组操作、数值计算、错误修正和编程实现。这些都是C语言基础的重要组成部分,对于准备计算机二级C语言考试的学生来说,理解和掌握这些知识点至关重要。