修复错误与编程题:2010年南开二级C语言考试重点
需积分: 0 57 浏览量
更新于2024-08-01
收藏 958KB DOC 举报
"这是2010年南开大学计算机等级考试三级网络基础的练习题集,包含改错题和编程题。"
这部分内容涉及到两个题目,分别是C语言的改错题和编程题。
1. 改错题
题目要求编写一个程序,用于找出输入整数的所有质因子。在给定的代码中,有两个错误需要修正:
- 错误1:函数`IsPrime`定义末尾的分号应该被去掉。原本的`IsPrime(int n);`应该改为`IsPrime(int n)`。
- 错误2:`if`语句的条件判断不正确。`if!(n%i)` 应该改为 `if (!(n%i))`,这样当`n`可以被`i`整除时,条件才为假,进入分支执行。
修正后的代码如下:
```c
#include<conio.h>
#include<stdio.h>
int IsPrime(int n) { // 去掉分号
int i, m;
m = 1;
for (i = 2; i < n; i++) { // 修正if语句
if (!(n % i)) { // 将!()改为|()
m = 0;
break;
}
}
return m;
}
main() {
int j, k;
clrscr();
printf("请输入一个介于2和10000之间的整数:");
scanf("%d", &k);
printf("该整数的质因子是:");
for (j = 2; j <= k; j++) {
if ((!(k % j)) && (IsPrime(j))) printf("%4d", j);
}
printf("\n");
}
```
2. 编程题1
这个编程题要求编写一个函数`fun`,计算并返回数组`score`中低于平均分的元素个数,并将这些元素存储到`below`数组中。
提供的部分源代码中,已经有计算平均分和遍历数组的基础框架。需要注意的是,函数需要返回低于平均分的人数,因此需要一个变量`k`来记录此类元素的个数。同时,在遍历数组的过程中,当元素低于平均分且满足条件时,将其添加到`below`数组中。以下是完成的`fun`函数:
```c
#include<conio.h>
#include<stdio.h>
#include<string.h>
int fun(int score[], int m, int below[]) {
int i, k = 0; // 添加k变量
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语言编程能力,包括条件判断、循环、数组操作以及函数的使用。在解决这类问题时,理解并正确使用逻辑运算符、控制流程语句以及数组处理是非常重要的。
2010-03-04 上传
2009-09-22 上传
2010-02-03 上传
2010-02-09 上传
2010-01-28 上传
2010-01-31 上传
2010-01-27 上传
2010-01-27 上传
xzq7611367
- 粉丝: 0
- 资源: 1
最新资源
- enlighten:启发Python控制台应用程序的进度栏
- bookmanagerapp
- 简报:简报
- C和汇编实现Dos操作系统的源代码
- tm_timer:头马演讲-计时小工具
- 灵魂
- grunt-susy-starter:使用 LibSass 和 Grunt 的 Susy Starter
- md5加密算法DLL VC++源代码
- 电信设备-配重式楼顶通信基站抱杆支架[1].zip
- fit-react-app
- 项目1.1
- se_containers:我使用C ++实现容器
- map_generator-old-:lua libs 在遗忘服务器上生成地形
- Visual C++单词拼写检查器
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 电信设备-配重式楼顶通信基站抱杆支架.zip