全国二级C语言考试重点:阶乘计算、素数因子与成绩分析

需积分: 3 5 下载量 111 浏览量 更新于2024-08-02 收藏 571KB DOC 举报
"全国计算机二级等级考试例题,包括C语言的填空题、改错题和编程题,主要涉及阶乘计算、素数因子判断和数组处理等知识点。" 全国计算机二级等级考试是对考生计算机知识和技能的一种评估,其中C语言是常见的考试科目之一。以下是对给定题目中涉及的几个知识点的详细解释: 1. 阶乘计算(填空题): 题目要求补充fun函数来实现阶乘计算。在C语言中,阶乘是一个递归问题,可以通过`if`语句和递归调用来解决。fun函数的基本结构如下: ```c long fun(int m) { if (m == 0 || m == 1) { // 这里填___1___,条件为m等于0或1 return 1; // 这里填___3___,返回1作为递归基础情况 } else { return (m * fun(m - 1)); // 这里填___2___,递归调用fun函数 } } ``` 递归的关键在于找到终止条件(这里是m等于0或1)并正确地进行递归调用。 2. 素数因子判断(改错题): 题目要求找出给定整数的所有素数因子。Prime函数用于判断一个数是否为素数。存在的错误有两处: - 第一处错误在注释为"*******error*********"的地方,Prime函数定义中缺少了类型定义,应该为`int Prime(int m)`。 - 第二处错误在于`if!(m%j)`,这会导致逻辑错误,应该改为`if (!(m % j))`。 修复后的代码如下: ```c int Prime(int m) { int j, p; p = 1; for (j = 2; j < m; j++) { if (!(m % j)) { // 修正后的条件判断 p = 0; break; } } return (p); } ``` 3. 数组处理(编程题): 题目要求编写一个函数fun,找出高于平均分的成绩并存储到指定数组中。首先,我们需要计算平均分,然后遍历数组,找出高于平均分的成绩。函数fun的实现可能如下: ```c int fun(int m, int point[], int high[], int *count) { int i, sum = 0; for (i = 0; i < m; i++) { sum += point[i]; } int avg = sum / m; *count = 0; for (i = 0; i < m; i++) { if (point[i] > avg) { high[*count] = point[i]; (*count)++; } } return *count; } ``` 在这个例子中,`count`参数用于记录高于平均分的个数,`high`数组用于存储这些成绩。 以上就是对全国计算机二级等级考试中C语言部分的三个典型题目的解析,涉及到递归、素数判断以及数组操作等核心编程概念。考生在准备考试时,需要熟练掌握这些基本概念和编程技巧。