C语言编程练习:圆周长、数字积与整数筛选
需积分: 10 15 浏览量
更新于2024-09-03
收藏 235KB DOCX 举报
"该文档是一个计算机二级C语言的上机考试题库,包含了填空题、改错题和编程题三种类型的题目,旨在帮助学习者巩固C语言的基础知识,特别是循环、函数调用以及条件判断等核心概念。"
在计算机二级C语言的学习中,掌握基本的语法和编程技巧至关重要。题库中的填空题、改错题和编程题都是常见的练习形式,能够有效提升学习者的编程能力和问题解决能力。
1. 填空题:
题目要求实现一个计算1/4圆周长的函数。圆周长公式为 `L = Πd`,其中 `d` 代表直径。题目给出的函数 `fun` 已经定义了计算圆周长的部分,只需要将常量 π 的值(3.14159)乘以直径 `d` 再除以4即可。在实际编程中,可以使用 `#define` 预处理器指令来定义π的值,以提高代码可读性,如 `#define PI 3.14159`。
```c
#include<stdio.h>
#define PI 3.14159
double fun(double d) {
return PI * d / 4.0;
}
main() {
double z;
printf("请输入圆的直径:");
scanf("%lf", &z);
printf("L=%lf\n", fun(z));
}
```
2. 改错题:
题目要求计算正整数m的各位数字之积。原始代码中,函数 `fun` 通过 `do...while` 循环实现了这一功能,但需要注意的是,循环条件应改为 `while(n > 0)`,以确保在m为0时也能正确结束循环。同时,为保持原程序结构不变,我们需要保留原有代码结构,只修改循环条件。
```c
#include<stdio.h>
#include<conio.h>
long fun(long n) {
long r = 1;
do {
r *= n % 10;
n /= 10;
} while (n > 0); // 修改循环条件为 n > 0
return(r);
}
main() {
long m;
printf("\n请输入一个数字:");
scanf("%ld", &m);
printf("\n%ld\n", fun(m));
}
```
3. 编程题:
本题要求编写一个函数 `fun`,找出1到m之间(含m)所有能被7或11整除的整数,并存储在数组 `b` 中,通过指针 `n` 返回这些数的个数。使用两个嵌套循环可以达到目的,外层循环遍历1到m,内层循环检查是否能被7或11整除。如果满足条件,将数字存入数组 `b` 并增加计数器 `j`。
```c
#include<conio.h>
#include<stdio.h>
#define N 100
void fun(int m, int b[], int *n) {
int i, j = 0;
*n = 0;
for (i = 1; i <= m; i++) {
if (i % 7 == 0 || i % 11 == 0) {
b[j] = i;
j++;
}
}
*n = j;
}
main() {
int a[N], n, i;
FILE *out;
fun(20, a, &n);
for (i = 0; i < n; i++) {
if ((i + 1) % 10 == 0) // 每10个数换行输出
printf("\n");
printf("%d ", a[i]);
}
printf("\n");
}
```
通过解答这些题目,学习者不仅可以加深对C语言基本语法的理解,还能锻炼到条件判断、循环控制、函数调用以及数组操作等技能,为后续更复杂的编程任务打下坚实基础。
2021-10-14 上传
2021-10-14 上传
2021-10-14 上传
2021-10-14 上传
2021-10-14 上传
2021-10-14 上传
2021-10-21 上传
野生java研究僧
- 粉丝: 8473
- 资源: 9
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析