C语言编程:找数组中最大和次大数及低于平均分人数
需积分: 1 107 浏览量
更新于2024-07-23
收藏 1.88MB DOC 举报
"C语言机试题库,包含2010年最新题型,涉及数组操作和统计功能"
在计算机2级C语言机试题库中,我们有两个编程问题,主要涉及数组处理和数值统计。
首先来看第一题。题目要求编写一个名为`fun`的函数,该函数的功能是在给定的数组中找到最大值和次大值,并将它们分别与数组的前两个元素进行对调。在提供的代码中,存在错误,导致无法得到预期结果。错误出现在注释有"found"的地方,即交换元素的代码段。正确的做法是在找到最大值和次大值后,先交换a[1]和max1的位置,再交换a[0]和max2的位置,因为题目规定最大值和次大值不在a[0]和a[1]中。因此,修正后的代码应为:
```c
t = a[1]; a[1] = a[m1]; a[m1] = t;
t = a[0]; a[0] = a[m2]; a[m2] = t;
```
这样,最大值和次大值就能被正确地放到数组的前两个位置。
接下来是第二题。函数`fun`需要计算n个学生成绩中低于平均分的人数,并将这个人数作为函数返回值。平均分存储在`aver`指向的内存中。题目给出的示例输入显示,平均分为75.5625,低于这个平均分的学生有4人。在提供的代码中,我们需要检查并修正错误以计算出正确的结果。这里,错误可能在于计算平均分和统计低于平均分人数的部分。确保计算平均分时使用正确的除法操作符(浮点除法),并用循环来统计人数。正确的代码段可能如下:
```c
float aver = 0;
int count = 0;
for (int i = 0; i < n; i++) {
scanf("%f", &x);
aver += x;
}
aver /= n;
for (int i = 0; i < n; i++) {
scanf("%f", &x);
if (x < aver) {
count++;
}
}
return count;
```
这样,程序就能正确地计算平均分,并统计出低于平均分的学生人数。
通过这两个题目,我们可以复习C语言中的数组操作,包括遍历数组、比较元素、交换元素以及计算平均值和统计条件满足的元素数量等基本技能。这对于准备计算机2级考试的考生来说是非常重要的练习。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-11-18 上传
天辰6559
- 粉丝: 0
- 资源: 1
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建