C语言编程练习:阶乘计算、素数因子与查找低分
需积分: 13 39 浏览量
更新于2024-07-29
2
收藏 882KB DOC 举报
“2011年计算机二级C语言99套上机操作题及答案.doc”
本资源包含的是关于计算机二级考试中C语言部分的99套上机操作题目及对应的答案,旨在帮助考生熟悉考试格式,提升C语言编程能力。以下是其中三道典型题目及其解析:
### 填空题
题目要求编写一个计算阶乘的递归函数`fun`。已给出部分代码如下:
```c
long fun(int n)
{
if(___1___)
return(n*fun(___2___));
return___3___;
}
```
正确答案如下:
- 第1处填空:`n>1`。这是递归的基础条件,只有当`n`大于1时,才继续进行递归调用。
- 第2处填空:`n-1`。每次递归调用时,将`n`减1,直到`n`等于1。
- 第3处填空:`1`。当`n`等于1时,结束递归,返回1作为阶乘的基本值。
### 改错题
该程序的目标是找出输入整数的所有素数因子。代码中的错误如下:
```c
IsPrime(int n)
{
int i, m;
m = 1;
for(i = 2; i < n; i++)
if!(n % i) // 错误1:需要添加括号
{
m = 0;
break;
}
return(m);
}
```
改正后的代码:
```c
IsPrime(int n)
{
int i, m;
m = 1;
for(i = 2; i < n; i++)
if (!(n % i)) // 正确1:添加括号
{
m = 0;
break;
}
return(m);
}
```
### 编程题
题目要求编写一个函数`fun`,找出数组`score`中低于平均分的分数,并将其存储到另一个数组`below`中。示例数据如下:
```c
int score[] = {10, 20, 30, 40, 50, 60, 70, 80, 90};
```
函数`fun`可能的实现如下:
```c
#include <stdio.h>
void fun(int score[], int M, int below[], int *count)
{
int avg = 0, i, j = 0;
for(i = 0; i < M; i++) // 计算平均分
avg += score[i];
avg /= M;
for(i = 0; i < M; i++) // 找出低于平均分的分数
if(score[i] < avg)
{
below[j++] = score[i]; // 将分数存入below数组
(*count)++;
}
}
int main()
{
int score[] = {10, 20, 30, 40, 50, 60, 70, 80, 90}, below[10], count = 0;
fun(score, 9, below, &count);
printf("Below average scores: ");
for(int i = 0; i < count; i++)
printf("%d ", below[i]);
printf("\n");
return 0;
}
```
以上代码首先计算了数组`score`的平均分,然后遍历数组,将低于平均分的分数存入`below`数组。在主函数`main`中调用`fun`,并输出结果。
通过这些题目,考生可以复习和练习C语言的基础语法、递归、循环、数组操作以及错误排查等技能,为计算机二级考试做好充分准备。
2023-06-02 上传
122 浏览量
140 浏览量
2021-11-25 上传
2022-07-13 上传
131 浏览量
113 浏览量
2021-09-21 上传
2022-11-28 上传

云开雾散
- 粉丝: 0
最新资源
- 免费教程:Samba 4 1级课程入门指南
- 免费的HomeFtpServer软件:Windows服务器端FTP解决方案
- 实时演示概率分布的闪亮Web应用
- 探索RxJava:使用RxBus实现高效Android事件处理
- Microchip USB转UART转换方案的完整设计教程
- Python编程基础及应用实践教程
- Kendo UI 2013.2.716商业版ASP.NET MVC集成
- 增强版echarts地图:中国七大区至省详细数据解析
- Tooloop-OS:定制化的Ubuntu Server最小多媒体系统
- JavaBridge下载:获取Java.inc与JavaBridge.jar
- Java编写的开源小战争游戏Wargame解析
- C++实现简易SSCOM3.2功能的串口调试工具源码
- Android屏幕旋转问题解决工具:DialogAlchemy
- Linux下的文件共享新工具:Fileshare Applet及其特性介绍
- 高等应用数学问题的matlab求解:318个源程序打包分享
- 2015南大机试:罗马数字转十进制数代码解析