南开二级C语言上机题目解析:错误修复与编程挑战
需积分: 9 145 浏览量
更新于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语言的学生来说,这样的练习有助于巩固基础知识,提升编程能力。同时,解决这类问题也能帮助学生更好地理解和应用逻辑运算符、数组操作以及函数的使用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-12-25 上传
2014-06-15 上传
2013-01-16 上传
2009-03-29 上传
fan297362814
- 粉丝: 0
- 资源: 1
最新资源
- md4-js.rar_Java编程_JavaScript_
- EDAC-开源
- goit-markup-hw-05
- Vifm:Vifm是Vi [m]的一切诅咒文件管理器。-开源
- DS Amazon Quick View-crx插件
- kvm_host.rar_Linux/Unix编程_Unix_Linux_
- java16_template_test
- devops_ac02
- QtnProperty:Qt5的扩展属性
- Android SQLite Kotlin扩展-Android开发
- TLC5941:TLC5941是一个高级的面向对象的Arduino库,用于使用德州仪器(TI)的TLC5941,TLC5940和TLC59401 LED驱动器来驱动大量LED。 图书馆分为四个主要类别
- QuickBookmarkToFolder-crx插件
- temporary:不
- finallf.rar_matlab例程_matlab_
- PyPI 官网下载 | tencentcloud-sdk-python-cam-3.0.454.tar.gz
- Hson是Android最快的JSON解析器/生成器。-Android开发