C程序设计:计算正整数因子和及因子列表

需积分: 7 0 下载量 40 浏览量 更新于2024-07-23 收藏 164KB DOC 举报
"2013年软考程序员笔试考前练习试题" 这篇资源是一套针对2013年软考程序员笔试的考前练习试题,旨在帮助考生熟悉考试内容和形式。试题涉及到C语言编程、算法及逻辑判断等多个方面。 在给出的C语言程序中,函数`factor(m,fac,cp)`的目的是计算并返回正整数m的所有不同因子的和,同时将因子存储在数组fac中,因子个数存入`cp`指向的变量。程序通过两个循环来寻找因子,第一个循环变量i从2开始,第二个循环变量c1和c2用于分别管理已找到因子的存储位置。当找到一个因子i时,它的配对因子k为m/i,将它们依次放入数组fac中,并累加到总和`s`。注意,为了避免重复,需要判断i和k是否相等。程序还包含一个错误处理部分,确保所有因子都被正确填充到数组中。 在题目中,需要填写正确的字句以完成程序: 1) 处应填入 `i=2` 或 `c1+1`,以确保从2开始检查因子且更新因子计数器。 2) 处应填入 `m%i==0`(或 `!(m%i)` 或 `m==i*k`),用于检测i是否是m的因子。 3) 处应填入 `i!=k`(或 `i<k`),确保不添加配对因子两次。 4) 处应填入 `fac[c1++]=fac[c2]`,将未使用的因子位置填充到已使用的位置。 5) 处应填入 `s`,因为函数需要返回因子和。 接下来是几个选择题: 1. C语言规定保留字中,`integer` 不是标准保留字,因此答案是(2) `integer`。 2. 表达式 `x++*5/10` 的值取决于x的初始值。由于x的初始值是3,x++后变为4,所以表达式的值为 `(4)*5/10`,结果为2,因此答案是(3) `2`。 3. 给定的C程序会输出字母表中 'f' 后面一个字母,即'H',因此答案是(2) `H`。 4. for循环条件是 `i<=j+1`,随着循环的进行,i递增2,j递减1,当i=4,j=1时满足条件,最后一次输出i的值为4。因此,程序输出4,但题目中似乎缺少了输出部分的完整内容。 这些练习题覆盖了C语言的基础知识,包括保留字、表达式求值、字符编码、以及循环控制,是准备软考程序员考试的重要参考资料。考生在解答时,不仅需要理解代码逻辑,还要掌握C语言的基本语法和规则。