南开大学计算机二级C语言上机题库与编程练习详解
需积分: 9 76 浏览量
更新于2024-10-20
收藏 60KB DOC 举报
南开大学计算机二级C语言考试的上机题库包含两道题目,分别是改错题和编程题。以下是这两道题目的详细解答及知识点讲解。
**改错题1:查找质因子程序**
该题目要求考生改正一个计算整数质因子的程序。程序的目标是找出给定整数k的所有质因子。原程序存在两个主要错误:
1. `IsPrime` 函数声明末尾的分号应移除,使其成为一个完整函数定义,如下:
```c
int IsPrime(int n);
```
2. 在`for`循环中的条件判断语句有误,应使用`if (n % i == 0)`而不是`if !(n % i)`,因为我们需要检查n是否能被i整除,修改后如下:
```c
for(i = 2; i < n; i++)
{
if (n % i == 0) // 修改此处
{
m = 0;
break;
}
}
```
修复这两个错误后,程序将能正确找到并输出指定整数k的所有质因子。
**编程题1:统计低于平均分的人数与分数**
题目要求编写一个函数`fun`,计算一个包含m个成绩的数组中低于平均分的人数,并将这些分数放入`below`数组中。首先,我们需要实现以下步骤:
1. 初始化:在函数`fun`中,设置一个计数器变量`k=0`和一个浮点型变量`aver=0`来计算平均分。
2. 计算平均分:遍历`score`数组,累加所有成绩,然后除以数组长度`m`得到平均分。
3. 检查并计数:再次遍历`score`数组,如果当前分数小于平均分,增加计数器`k`并将其添加到`below`数组中。这里需要注意,需要先检查分数是否小于平均分,而不是是否能被平均分整除。
4. 返回结果:函数结束后,返回计数器`k`作为低于平均分的人数。
下面是修正后的`fun`函数实现:
```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)
{
k++;
below[k-1] = score[i]; // 注意数组下标从0开始
}
}
return k;
}
```
通过这些步骤,函数将正确地统计并返回低于平均分的人数及对应的分数。
以上是两道题目涉及的关键知识点,考生在准备二级C语言考试时,务必熟悉基本语法、流程控制和函数设计,以及如何处理输入输出和数据结构的使用。理解并解决这类题目是提升编程技能和考试通过率的关键。
2021-10-04 上传
150 浏览量
2022-02-10 上传
2021-10-04 上传
2021-10-11 上传
2021-12-23 上传
105 浏览量
Zero0009
- 粉丝: 59
最新资源
- Sybase15系统管理指南:AdaptiveServerEnterprise中文手册
- Sybase15 AdaptiveServerEnterprise 中文系统表手册
- Eclipse IDE详解:从基础到高级设置
- 深入学习Java:Bruce Eckel的第四版思维之书
- Eclipse整合开发工具基础教程详解
- NIOS II 开发教程:从用户指令到DMA与UART实战
- 操作系统的LRU页面置换算法实现
- STL实战指南:提升编程效率与应对挑战
- TMS320C54XX DSP硬件结构与设计解析
- 自编数据结构文本编辑器实现与错误修正
- VC++6.0实现密码学大数加减乘除源代码示例
- Java贪吃蛇游戏实现:SnakeGame.java代码解析
- 适应性外包发展:寻找最合适的技术与策略
- Libsvm与Matlab集成:教程与路径设置详解
- Oracle 10g 数据库基础概念详解
- S3C6410 RISC Microprocessor User's Manual