C语言程序设计:低于平均分成绩处理与特殊数列生成

需积分: 9 5 下载量 19 浏览量 更新于2024-10-01 收藏 36KB TXT 举报
"该资源为二级C语言考试的上机真题及答案,包含了多个编程题目,主要涉及数组处理、条件判断以及字符串分析等基础知识。" 在这些题目中,我们可以看到几个关键的知识点: 1. 计算平均分并找出低于平均分的分数: 这个题目要求编写一个函数`fun`,接受一个整数数组`score`,表示m个人的成绩,以及一个整数数组`below`,用于存放低于平均分的分数。函数首先计算所有成绩的平均分,然后遍历`score`数组,将低于平均分的分数存储到`below`中。这里用到了循环、数组操作、条件判断以及平均数的计算。 ```c int fun(int score[], int m, int below[]) { int i, k = 0, aver = 0; for (i = 0; i < m; i++) // 计算平均分 aver += score[i]; aver /= m; for (i = 0; i < m; i++) // 找出低于平均分的分数 if (score[i] < aver) { below[k] = score[i]; k++; } return k; // 返回低于平均分的个数 } ``` 2. 筛选出同时能被7、11整除但不能被77整除的数: 第二个函数`fun`需要找到1到1000之间满足特定条件的数,即能被7或11整除,但不能被77整除。这里使用了嵌套循环和条件判断来筛选满足条件的数,并将结果存储到数组`a`中。 ```c void fun(int *a, int *n) { int i, j = 0; for (i = 2; i < 1000; i++) if ((i % 7 == 0 || i % 11 == 0) && i % 77 != 0) a[j++] = i; *n = j; // 返回满足条件的数的数量 } ``` 3. 找出x的所有奇数因子并将它们存储到pp数组中: 第三个函数`fun`的任务是找出小于等于x的所有奇数,并且是x的因子,然后将这些因子存放到pp数组中。这里使用了两个循环,第一个循环找出所有奇数,第二个循环检查这个奇数是否是x的因子。 ```c void fun(int x, int pp[], int *n) { int i = 1, j = 0, k = 0, *t = pp; for (i = 0; i <= x; i++) if (i % 2 != 0) { t[j] = i; j++; } for (i = 0; i < j; i++) if (x % t[i] == 0) { pp[k] = t[i]; k++; } *n = k; // 返回因子的数量 } ``` 4. 统计字符串中每个字母出现的次数: 最后一个函数`fun`接收一个字符串`tt`,统计其中每个小写字母出现的次数,然后将结果存放到整数数组`pp`中,数组下标对应字母在字母表中的位置。这里使用了`switch`语句进行字符判断,并更新对应的数组元素。 ```c void fun(char *tt, int pp[]) { int i; for (i = 0; i < 26; i++) pp[i] = 0; while (*tt) { switch (*tt) { case 'a': pp[0]++; break; case 'b': pp[1]++; break; // ... 依次类推,统计其他字母 } tt++; } } ``` 这些题目涵盖了C语言的基本语法和逻辑控制,如数组操作、条件判断、循环、函数调用等,是学习C语言时常见的基础练习。通过解答这些题目,可以提高对C语言的理解和编程能力。