C语言编程练习:阶乘计算与因子查找

需积分: 10 13 下载量 170 浏览量 更新于2024-07-30 1 收藏 870KB DOC 举报
"2011年计算机二级C语言100套上机题库,包含填空题、改错题和编程题等题型,旨在帮助考生准备C语言的机试部分。" 这篇文档提供了2011年计算机二级考试C语言科目的上机操作题库,包括三类常见题型:填空题、改错题和编程题。这些题目旨在测试考生对C语言基础语法、逻辑推理以及算法设计的理解和应用能力。 首先,让我们来看填空题的部分。这道题要求填写一个计算阶乘的递归函数`fun`。在C语言中,递归函数是通过调用自身来解决问题的一种方法。在给出的代码中,`fun`函数用于计算输入整数`n`的阶乘。第一处填空要求判断是否需要继续递归,即判断`n`是否大于1,因此填写条件`n>1`或`1<n`。第二处填空是在递归调用时减小`n`的值,所以填写`n-1`。最后一处,当`n`等于1时,阶乘的结果为1,所以填入`1`,同时为了确保结果为长整型,也可以填写`1L`以避免整数溢出。 接下来是改错题。这个程序的目的是找出输入整数的所有素数因子。错误出现在`IsPrime`函数定义和条件判断语句中。第1处错误是函数定义,应将`Isprime(intn);`更正为`Isprime(intn)`,保持函数声明与定义的一致性。第2处错误在于条件判断,`if!(n%i)`应该修改为`if(!(n%i))`,这是因为逻辑非操作符`!`的优先级高于关系运算符 `%`,所以需要加上括号来确保正确执行。 最后是编程题,要求编写一个函数`fun`,该函数接收一个包含M个成绩的数组`score`,找出并返回低于平均分的成绩数组`below`。解决这个问题需要计算平均分,然后遍历数组,将低于平均分的元素存储到新的数组中。考生需要理解数组操作、循环控制、条件判断以及计算平均值的方法。 通过这份题库,考生可以系统地练习和提高C语言的编程技能,包括掌握基本语法、理解递归、逻辑判断以及数组处理等核心概念,这些都是C语言学习中的重要组成部分。对于准备计算机二级C语言考试的考生来说,这样的练习材料极具价值,有助于他们在实际考试中取得好成绩。