南开大学C语言二级上机100题-改错与编程
需积分: 9 3 浏览量
更新于2024-08-01
1
收藏 96KB DOC 举报
"2010年南开大学C语言编程练习题目,包含改错题和编程题,旨在考察考生对C语言基础知识的理解和应用能力,特别是关于质因子的判断和找出低于平均分的分数的处理。"
在给定的题目中,我们可以提炼出以下两个知识点:
### 1. 质因子的判断与输出
改错题1的目标是编写一个程序,读取用户输入的整数并找出其所有的质因子。在这个过程中,我们需要理解质因子的定义,即一个数除1和自身外,没有其他正因数的数。程序中存在一处错误,需要进行修正:
- 错误点:`IsPrime` 函数定义末尾的分号。这个分号使得函数定义成为一个空语句,实际上`IsPrime`函数的实现被放置在了另一个独立的代码块中,导致调用错误。修正方法是去掉分号,使`IsPrime`函数定义完整。
- 正确的条件检查:在循环中,判断是否能整除时,原始代码使用了`if!(n%i)`,这实际上是语法错误。应改为`if (!(n%i))`,确保条件检查正确。
```c
IsPrime(int n) {
int i, m;
m = 1;
for (i = 2; i < n; i++) {
if (!(n % i)) { // 修改条件检查
m = 0;
break;
}
}
return (m);
}
```
### 2. 计算低于平均分的分数数量及存储
编程题1要求编写一个函数`fun`,该函数接收一个成绩数组和数组长度,计算并返回低于平均分的人数,并将这些分数存入另一个数组。关键在于计算平均分和遍历数组来找出低于平均分的元素:
- 平均分计算:首先,遍历整个数组,累加所有分数,然后除以人数得到平均分。
- 存储低于平均分的分数:再次遍历数组,将低于平均分的分数添加到`below`数组中,并计数。
```c
int fun(int score[], int m, int below[]) {
int i, k = 0;
float 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]; // 将低于平均分的分数存入below数组
}
}
return k; // 返回低于平均分的分数个数
}
```
这两个题目主要考察了C语言的基础语法、逻辑判断、循环控制以及数组操作等核心概念,同时也是对算法设计和问题解决能力的检验。对于初学者,这类题目有助于巩固和提高C语言编程技能。
2009-09-22 上传
2010-03-21 上传
2010-09-08 上传
2010-04-12 上传
2010-03-26 上传
2010-07-10 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
shijie12345
- 粉丝: 0
- 资源: 1
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常