C语言程序:计算正整数因子并解题

需积分: 9 5 下载量 188 浏览量 更新于2024-09-11 1 收藏 80KB DOC 举报
"软件工程师考试300题" 本资源是一份针对软件工程师考试的练习题集,包含300道题目,旨在帮助备考者提升技能并熟悉考试形式。其中,有一段C语言程序代码,用于计算一个正整数的所有非自身因子的和,并将这些因子存储在一个数组中。程序的关键部分需要填写适当的字句以完成功能。 1. 程序中,`factor` 函数的目标是计算正整数 `m` 的所有不同因子的和。为了实现这个目标,程序使用了一个循环结构,从 `i=2` 开始,检查 `i` 是否是 `m` 的因子。当 `m % i == 0` 时,表示 `i` 是 `m` 的因子,同时需要确保 `i` 不等于 `k`(即 `m/i`),以避免重复添加相同的因子。 2. 空缺 1 处,需要一个条件来决定何时开始检查因子。由于因子从 2 开始,因此这里应该填写 `i=2` 或 `c1+1`,表示从第二个可能的因子开始。 3. 空缺 2 处,应填写 `m % i == 0`,表示 `i` 能整除 `m`,是 `m` 的因子。 4. 空缺 3 处,需要确保 `i` 不等于 `k`,即 `i != k`,以防止添加重复因子。 5. 空缺 4 处,循环结束后,需要将 `fac[c1]` 位置的元素复制到 `fac[c2]`,以便腾出空间给后续可能的因子。因此,这里填写 `fac[c1++]=fac[c2]`。 6. 空缺 5 处,函数返回因子和 `s`。 此外,题目还包含了四道 C 语言的选择题: 1. C 语言规定保留字不包括 `integer`,因此选项 (2) 是正确答案。 2. 表达式 `x++*5/10` 先进行自增操作 `x++`,然后乘以 5 再除以 10。由于 `x` 初始值为 3,表达式的结果为 1,因此选项 (2) 是正确答案。 3. 程序将字符 `'f'` 的 ASCII 值减去 `'a'` 的 ASCII 值加 1,得到 `'H'` 的位置,所以输出为 `'H'`,选项 (2) 是正确答案。 4. for 循环在 `i <= j + 1` 时执行,初始条件下 `i` 从 0 开始,`j` 从 1 开始,因此在第一次迭代后 `i` 变为 2,`j` 变为 0,不再满足循环条件,所以只打印了一次 `i` 的值,即 2。 这些题目涵盖了 C 语言的基本语法、运算符优先级、字符处理以及循环结构等内容,对于准备软件工程师考试的考生来说是非常有价值的练习。