C语言编程:Fibonacci数列、删除数字字符、完数与数位乘积判断
需积分: 5 73 浏览量
更新于2024-08-03
收藏 165KB PDF 举报
本文介绍了四道C语言填空题,涵盖了数组、循环、条件判断、字符串处理和数学逻辑等基础知识。题目旨在考察对Fibonacci数列的理解,字符串操作,完数检测以及数字属性分析。
一、Fibonacci数列
在C语言程序中,Fibonacci数列的实现通过数组存储前10项。初始化`fib[0]`和`fib[1]`为1,然后使用循环计算后续项。循环内部的填空部分应填写`+`,表示将前两项相加赋值给当前项`fib[i]`。程序还包含一个打印输出部分,确保每行最多显示5个数,使得输出更易读。
```c
for (i = 2; i < 10; i++)
fib[i] = fib[i - 2] + fib[i - 1]; // 填空处填写 "+"
```
二、删除字符串中的数字字符
该题目的目的是从输入的字符串中移除所有数字。`fun`函数遍历字符串,遇到数字则跳过,非数字字符则复制到原字符串的前面。填空处`p++`后应填写`;`表示结束语句,`*s++=`后面填写`*p`,将非数字字符复制回字符串的起始位置,并更新指针。最后,调用`fun`函数处理字符串。
```c
void fun(char *s) {
char *p = s; // 填空3分:初始化指针p
while (*p) {
if ((*p >= '0') && (*p <= '9'))
p++;
else
*s++ = *p++, *s = 0; // 填空处填写 "*s = *p, *s = 0"
}
}
```
三、输出1000以内的完数及其因子
此题要求找出1000以内所有完数,并打印其因子。遍历1到1000的整数,对每个数检查其因子之和是否等于数本身。使用两个嵌套循环,内层循环用于找到因子,当找到因子时,将其添加到数组`a`中,并累加到`s`。填空处应填写`break`,表示找到一个因子后跳出内层循环,`a[k++] = j;`表示将因子添加到数组并更新索引,`j < k`检查是否已经遍历完所有因子。
```c
for (j = 1; j < m; j++) {
if (m % j == 0) {
s = s + j;
a[k++] = j; // 填空2分:将因子添加到数组
break; // 填空处填写 "break"
}
}
```
四、输出符合条件的数
最后一个问题涉及找到1到100之间满足条件的数,即数字乘积大于数字之和。对于每个数字`n`,计算其各位数字的乘积`k`和和`s`,填空处应填写`*10 + m%10`,将数字的个位数添加到`n`的剩余部分,以便逐步处理每一位数字。
```c
while (m != 0) {
s = s + m % 10;
k = k * (m % 10); // 填空处填写 "m % 10",表示提取数字的个位
m = m / 10;
}
```
这四道题目综合了C语言的基本编程技巧和逻辑思维,是很好的期末复习练习。通过解决这些问题,学生可以巩固对C语言基础知识的理解。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-07-11 上传
2023-03-11 上传
北疯001
- 粉丝: 1
- 资源: 22