南开二级C语言上机题目解析:错误修复与编程挑战
需积分: 9 134 浏览量
更新于2024-10-22
收藏 96KB DOC 举报
"C语言编程题目集,包括改错题和编程题,主要涉及质因子输出和统计低于平均分人数的功能。"
这篇摘要涉及到两道C语言的编程题目,分别是南开大学二级C语言考试的改错题和编程题。首先我们来详细分析这两道题目。
1、改错题1:
该题目的目标是读入一个整数,并输出其所有质因子。程序中存在错误,需要修正。问题出现在以下两处:
- 函数`IsPrime`定义末尾的分号应当去掉,即`IsPrime(int n);` 应改为 `IsPrime(int n) { ... }`
- 在判断是否为质数的条件语句中,逻辑操作符使用错误,`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);
}
main() {
int j, k;
clrscr();
printf("Please enter an integer number between 2 and 10000:");
scanf("%d", &k);
printf("\nThe prime factor(s) of %d is(are):\n", k);
for (j = 2; j <= k; j++)
if ((!(k % j)) && (IsPrime(j))) printf("\n%4d", j);
printf("\n");
}
```
2、编程题1:
这道题要求编写一个函数`fun`,该函数接收一个成绩数组`score`,计算平均分并找出低于平均分的分数,返回低于平均分的人数,并将这些分数存放在`below`数组中。
已给出部分源代码如下:
```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; // 返回低于平均分的人数
}
// 主函数main和其他函数省略...
```
这两道题目都属于基础的C语言编程练习,涵盖了条件判断、循环、函数调用等基本概念。对于学习C语言的学生来说,这样的练习有助于巩固基础知识,提升编程能力。同时,解决这类问题也能帮助学生更好地理解和应用逻辑运算符、数组操作以及函数的使用。
2009-11-15 上传
2009-09-19 上传
106 浏览量
2014-06-15 上传
2013-01-16 上传
2012-12-05 上传

fan297362814
- 粉丝: 0
最新资源
- 深入探讨V2C控制Buck变换器稳定性分析及仿真验证
- 2012款途观怡利导航破解方法及多图功能实现
- Vue.js图表库vuetrend:简洁优雅的动态数据展示
- 提升效率:仓库管理系统中的算法与数据结构设计
- Matlab入门必读教程——快速上手指南
- NARRA项目可视化工具集 - JavaScript框架解析
- 小蜜蜂天气预报查询系统:PHP源码与前端后端应用
- JVM运行机制深入解析教程
- MATLAB分子结构绘制源代码免费分享
- 掌握MySQL 5:《权威指南》第三版中文版
- Swift框架:QtC++打造的易用Web服务器解决方案
- 实现对话框控件自适应的多种效果
- 白镇奇士推出DBF转EXCEL高效工具:hap-dbf2xls-hyy
- 构建简易TCP路由器的代码开发指南
- ElasticSearch架构与应用实战教程
- MyBatis自动生成MySQL映射文件教程