C语言编程:上机题解与算法分析

需积分: 0 3 下载量 25 浏览量 更新于2024-08-01 收藏 93KB DOC 举报
"2010年C语言上机题库,包含四道编程题目,分别涉及计算平均分、筛选特定整数、找出非偶数除数以及统计字符出现次数的功能实现。" 第一题的考点在于计算平均分并找出低于平均分的分数。给出的代码定义了一个名为`fun`的函数,它接受一个整数数组`score`,数组的大小`m`,以及一个用于存储低于平均分分数的数组`below`。首先,函数通过遍历整个`score`数组计算平均分`aver`,然后再次遍历数组,将低于平均分的元素存储到`below`数组中,并返回低于平均分的个数`k`。这里的关键点是正确地计算平均分(除以元素个数),以及如何有效地将符合条件的元素放入新数组。 第二题的目标是找出能被7或11整除,但不能同时被7和11整除的数字。提供的`fun`函数通过遍历2到100之间的所有整数,使用条件`(i%7==0||i%11==0)`来检查是否能被7或11整除,再通过`(i%77!=0)`排除同时被7和11整除的数字。符合条件的数字存储到数组`a`中,数组的长度`j`作为返回值。这个题目考察了对整数除法的理解以及逻辑运算符的使用。 第三题的函数`voidfun(int x, int pp[], int *n)`目的是找出能整除给定整数`x`且自身不是偶数的除数,并将它们按从小到大顺序存入`pp`数组,返回这些除数的个数。函数首先创建了一个临时数组`t`,用于存储所有非偶数,然后遍历这个临时数组,找到能整除`x`的元素,将它们添加到`pp`数组中。注意这里使用了两个循环,先找出所有非偶数,然后再筛选出能整除`x`的数,体现了多步逻辑处理的能力。 第四题的`fun`函数接收一个字符串`tt`和一个整数数组`pp`,用于统计字符串中每个小写字母出现的次数。通过`switch`语句,函数逐个检查字符串中的字符,当遇到小写字母时,将其对应的计数器加一。数组`pp`的索引对应字母在字母表中的位置,从而实现了统计功能。这个题目考察了字符串处理和`switch`语句的应用。 这些题目覆盖了C语言的基础知识点,如数组操作、循环控制、条件判断、函数参数传递、指针使用以及基本的数学运算。通过解决这些题目,学生可以提高对C语言基本语法和逻辑控制的理解。