南开二级C语言上机考试编程题解析:质因子与低于平均分人数
需积分: 0 97 浏览量
更新于2024-08-01
收藏 839KB DOC 举报
"该资源包含了两道南开大学二级C语言上机考试的编程题目,主要涉及基础的C语言编程技巧,包括查找整数的质因子和统计低于平均分成绩的数量。"
第一题是一个查找整数质因子的程序。程序的目标是接收一个2到10000之间的整数,并输出其所有质因子。在给出的代码中,存在一处错误需要修正。原始代码在`IsPrime`函数定义末尾多了一个分号,这会导致编译错误,需要移除。此外,在判断一个数是否为质数的循环中,`if!(n%i)`应该改为`if(!(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 (!(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 are:", k);
for (j = 2; j <= k; j++)
if ((!(k % j)) && (IsPrime(j)))
printf("\n%4d", j);
printf("\n");
}
```
第二题要求编写一个函数`fun`,这个函数的作用是计算数组中低于平均分的元素个数,并将这些元素存储到另一个数组`below`中。给定的源代码中,首先计算平均分`aver`,然后遍历数组,找出低于平均分的元素。在遍历过程中,需要注意将计数器`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) { // 检查是否低于平均分
below[k++] = score[i]; // 存储到below数组并更新计数器
}
return k; // 返回低于平均分的元素个数
}
```
这两个编程题旨在检验考生对C语言基本语法、循环、条件判断、函数以及数学概念(如质因子、平均值)的理解与应用能力。通过解决这些问题,初学者可以提升自己的编程技能,并更好地理解如何在实际问题中运用C语言。
2010-03-11 上传
2009-03-11 上传
点击了解资源详情
2008-10-10 上传
103 浏览量
2009-03-24 上传
2010-09-17 上传
2009-06-25 上传
2009-07-31 上传
tianyachmch
- 粉丝: 0
- 资源: 5
最新资源
- torch_cluster-1.5.6-cp36-cp36m-linux_x86_64whl.zip
- D-无人机:拉无人机。 使用计算机视觉在喷漆墙上画画以实现精确导航
- myloader
- Metro_Jiu-Jitsu-crx插件
- 导航条,鼠标悬停滑动下拉二级导航菜单
- 中国企业文化理念:提炼与实施的流程及方法(第一天课程大纲)
- 使用videojs/aliplayer 实现rtmp流的直播播放
- irt_parameter_estimation:基于项目响应理论(IRT)的物流项目特征曲线(ICC)的参数估计例程
- visualvm_21.rar
- torch_sparse-0.6.4-cp38-cp38-linux_x86_64whl.zip
- redratel:数字代理
- JumpStart!-开源
- api-2
- Adoptrs-crx插件
- redis windows x64安装包msi格式的
- XX轧钢企业文化诊断报告