C语言编程题目解析:上机考试重点

需积分: 16 10 下载量 177 浏览量 更新于2024-10-15 1 收藏 30KB TXT 举报
"该资源包含了计算机二级C语言考试中的上机编程题目,旨在帮助备考者进行练习和提高。包括了四个不同的编程问题,涵盖了数组处理、条件判断、循环控制等基本C语言编程技能。" 在计算机二级C语言的上机编程部分,考生需要具备扎实的编程基础和良好的逻辑思维能力。以下是对给定文件中四个编程题目的详细解释: 1. 题目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. 题目2要求编写一个函数`fun`,该函数接收一个整数指针数组`a`和一个整型变量`n`的指针。这个函数的目的是找出1到1000之间,同时能被7或11整除但不能被77整除的数,并将这些数存储到数组`a`中,同时更新`n`的值以表示存储的元素个数。此题考察了整数除法、模运算以及嵌套循环。 ```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. 题目3要求编写一个函数`fun`,该函数接收一个整数`x`,一个整数数组`pp`以及一个整型变量`n`的指针。函数需要找到所有小于等于`x`且能被`x`整除的奇数,并将它们存入`pp`数组,同时更新`n`的值表示存储的奇数个数。此题涉及到对奇数的判断、整数除法和条件控制。 ```c void fun(int x, int pp[], int *n) { int i = 1, j = 0, k = 0, *t = pp; for (i = 0; i <= x; i++) // 找出所有小于等于x的奇数 if (i % 2 != 0) { t[j] = i; j++; } for (i = 0; i < j; i++) // 筛选出能被x整除的奇数 if (x % t[i] == 0) { pp[k] = t[i]; k++; } *n = k; // 更新元素个数 } ``` 4. 题目4要求编写一个函数`fun`,该函数接收一个字符串`tt`和一个整数数组`pp`。函数应统计字符串`tt`中每个小写字母出现的次数,并将结果存储到`pp`数组中,数组索引对应字母在字母表中的位置(a=0, b=1, ...)。这道题目涉及到了字符处理、字符串遍历以及switch-case语句。 ```c void fun(char *tt, int pp[]) { int i; for (i = 0; i < 26; i++) // 初始化数组为0 pp[i] = 0; while (*tt) // 遍历字符串 { switch (*tt) { case 'a': pp[0]++; break; case 'b': pp[1]++; break; case 'c': pp[2]++; break; // 依次类推,直到'z' } tt++; // 移动到下一个字符 } } ``` 以上四个编程题分别测试了C语言中的不同知识点,如数组处理、条件判断、循环控制、算术运算以及字符串处理,这些都是C语言学习的基础。对于准备计算机二级C语言考试的考生来说,熟练掌握这些内容至关重要。通过解决这类题目,考生可以提升自己的编程能力,更好地应对考试。