C语言编程练习:求阶乘、找素数因子与处理低于平均分成绩

版权申诉
0 下载量 78 浏览量 更新于2024-06-25 收藏 816KB DOC 举报
"计算机二级C语言99套上机操作题及答案.doc" 这篇文档包含了99套针对计算机二级C语言考试的上机操作题目和对应的答案,旨在帮助考生熟悉C语言编程以及解决实际问题的能力。以下是其中一套题目的详解: 1. 填空题 题目要求编写一个计算阶乘的`fun`函数,用于计算10的阶乘。提供的部分代码使用了递归的方法。在递归函数中,需要判断基本情况和递归情况。 - 第1处填空:`if(n>1)` 或 `if(1<n)`,这是递归的基础,只有当n大于1时,才需要继续进行递归计算阶乘。否则,n等于1时,阶乘的结果是1,所以此处应填写判断n是否大于1的条件。 - 第2处填空:`n-1`,在递归调用中,每次需要将n减1,直到n等于1为止,因此填入`n-1`。 - 第3处填空:`1` 或 `11` 或 `1L`,这是递归的终止条件,当n等于1时,返回1,表示1的阶乘是1。由于返回值类型是`long`,也可以写成`1L`来明确表示这是一个长整型数值。 2. 改错题 这段代码的目标是找到并打印输入整数的所有素数因子。存在的问题是两个逻辑错误。 - 第1处错误:`IsPrime(int n);` 应该改为 `int IsPrime(int n);`,这是函数声明,需要指定返回类型,这里是布尔值,表示判断是否为素数。 - 第2处错误:`if!(n%i)` 应该为 `if(!(n%i))`,这里是一个逻辑运算符的误用,`!`应该放在括号内,以确保正确地判断n是否能被i整除。 3. 编程题 题目要求编写一个函数`fun`,找出数组`score`中低于平均分的分数,并存储到`below`数组中。这个函数需要计算数组的平均分,然后遍历数组,找出所有低于平均分的元素。 在实现`fun`函数时,首先计算数组`score`的总和,然后除以元素个数得到平均分。接着,遍历数组,如果当前元素小于平均分,就将其添加到`below`数组中。最后返回低于平均分的分数数量。 这些题目覆盖了C语言的基本语法、递归、逻辑判断、函数声明与定义、循环控制以及数组操作等核心知识点,对于准备计算机二级C语言考试的学生来说,是非常有价值的练习材料。通过反复练习和理解这些题目,可以有效提升C语言编程能力。