南开二级C语言上机改错与编程解析
需积分: 0 187 浏览量
更新于2024-12-22
收藏 63KB DOC 举报
"南开大学二级C语言课程的100道上机改错题,包含编程题目,涉及质因子的查找和计算低于平均分的人数。"
在C语言编程中,改错题通常用于训练学生的编程技能和逻辑思维。这两道题目分别涉及寻找整数的质因子和统计低于平均分的分数。
首先,我们来看第一道改错题。程序的目的是找出一个整数的所有质因子。在给定的代码中,存在两个错误:
1. 函数`IsPrime`定义时的分号被误写在了函数声明的末尾,这会导致编译错误。应将分号去掉,正确写法为:
```c
IsPrime(int n)
```
2. 在`if`语句的条件判断中,使用了错误的逻辑操作符。应当使用`!`来取反,而不是`!`与`(`的组合,所以应将`if!(n%i)`更改为`if(!(n%i))`。修正后的代码片段如下:
```c
if (!(n % i)) {
m = 0;
break;
}
```
这个修正后的`IsPrime`函数会检查输入的整数`n`是否为质数,如果是,则返回1,否则返回0。
接下来是第二道编程题,目标是统计并存储低于平均分的分数。题目给出的代码框架中,有两个关键部分需要填写:
1. 计算平均分的部分已经给出,但需要注意的是,变量`aver`应初始化为0,而不是声明时赋值。修正后的代码为:
```c
int i, k = 0;
float aver = 0;
for (i = 0; i < m; i++)
aver += score[i];
aver /= m;
```
2. 统计低于平均分的分数并存入`below`数组。这部分应在`for`循环中完成,当分数低于平均分时,将分数添加到`below`数组,并累加计数器`k`。修正后的代码为:
```c
for (i = 0; i < m; i++) {
if (score[i] < aver) {
below[k++] = score[i];
}
}
```
这里,`k++`用于递增计数器,表示找到了一个低于平均分的分数。
完成这两个修正后,程序将能够正确执行其指定的任务。在实际编程学习中,这样的改错练习有助于提高对C语言语法的理解,培养调试和修复代码错误的能力。
2009-03-11 上传
2007-07-01 上传
2010-11-03 上传
2023-09-20 上传
2024-03-25 上传
2024-11-11 上传
2023-07-11 上传
2023-09-26 上传
2024-11-11 上传
lyre129
- 粉丝: 1
- 资源: 9
最新资源
- 走出软件作坊,符合中国国情的软件开发宝典
- PDF Converter-crx插件
- deeplearn:深度学习图书馆A级项目
- javalist源码-Parse-Functions:从Perl,Python,Ruby,PHP,Java,JavaScript等源代码中提取
- dk
- 多层陶瓷电容器自动化层压机_零件图_机械工程图_机械三维3D建模图打包下载.zip
- hadoop-trans:集群数据迁移,数据合并压缩
- Fr801xH 快速入门-综合文档
- Python:在UoA学习Python
- DemoForProtobuf
- 易语言-易语言添加UAC信息模块
- .net 一般处理程序的增删改示例程序
- vb企业人事工资管理系统(源代码+论文).zip
- JSON2CSV:转换文本格式无JSON CSV段落
- boarding-analysis-backend
- Urban Anti-Malware - Safe Browsing-crx插件