C语言编程:程序练习题解决方案
需积分: 9 158 浏览量
更新于2024-08-05
收藏 100KB PDF 举报
“程序填空题.pdf”
以下是各个代码段的功能详解及完善:
1. **功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。**
```c
#include<stdio.h>
int main()
{
int i, n, sum;
n = 0; // 初始化计数器为0
for(i = 2; i <= 300; i++) // 从2开始,因为2是最小的偶数
{
if(i % 7 == 0 || i % 17 == 0) // 检查是否能被7或17整除
{
if(i % 2 == 0) // 确保是偶数
{
sum += i; // 累加和
n++;
printf("%6d", i);
if((n % 5) == 0) // 每输出5个数换行
printf("\n");
}
}
}
printf("\ntotal=%d", sum);
return 0;
}
```
在这个程序中,我们首先初始化变量`i`、`n`(用于计数)和`sum`(用于累加偶数的和)。然后使用一个for循环遍历从2到300的所有整数,检查它们是否可以被7或17整除且是偶数。满足条件的数被累加到`sum`中,同时计数器`n`递增。每输出5个数,就打印一个换行符,确保每行只显示5个数。最后,输出总和。
2. **功能:输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。**
```c
#include<stdio.h>
void main()
{
int m, n, k, i = 0;
for(m = 100; m <= 1000; m++)
{
k = 0; // 初始化各位数字之和
n = m;
do
{
k += n % 10; // 计算各位数字之和
n /= 10;
} while(n > 0); // 当n不再大于0时,结束循环
if(k % 15 == 0)
{
printf("%5d", m);
i++;
if(i % 10 == 0)
printf("\n"); // 每输出10个数换行
}
}
return 0;
}
```
这个程序从100到1000遍历所有整数,计算每个数的各位数字之和`k`,如果`k`可以被15整除,则输出该数。每输出10个数后,打印一个换行符,保持输出格式。
3. **功能:是将两个字符串连接为一个字符串,不许使用库函数strcat。**
```c
#include<stdio.h>
#include<string.h>
void JOIN(char s1[], char s2[])
{
int i, j;
i = strlen(s1) - 1; // 获取s1的长度并找到末尾
s1[i + 1] = '\0'; // 在s1末尾添加结束符,为s2留出空间
for(j = 0; s2[j] != '\0'; j++) // 从s2的第一个字符开始复制
{
s1[i + j + 1] = s2[j];
}
}
int main()
{
char str1[80], str2[40];
gets(str1);
gets(str2);
puts(str1);
puts(str2);
JOIN(str1, str2);
puts(str1);
return 0;
}
```
在JOIN函数中,我们首先获取`s1`的长度,然后在`s1`末尾添加一个空字符,为`s2`腾出空间。接着,我们从`s2`的第一个字符开始,逐个复制到`s1`的末尾。主函数中,先读取两个字符串,然后调用JOIN函数连接它们,最后输出结果。
4. **功能:统计一个字符串中的字母、数字、空格和其它字符的个数。**
```c
#include<stdio.h>
void fun(char s[], int b[])
{
int i;
for(i = 0; s[i] != '\0'; i++)
{
if(('a' <= s[i] && s[i] <= 'z') || ('A' <= s[i] && s[i] <= 'Z')) // 检查是否为字母
b[0]++;
else if(('0' <= s[i] && s[i] <= '9')) // 检查是否为数字
b[1]++;
else if(s[i] == ' ') // 检查是否为空格
b[2]++;
else // 其他字符
b[3]++;
}
}
int main()
{
char str[100];
int count[4] = {0}; // 初始化计数数组
gets(str);
fun(str, count);
printf("字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n", count[0], count[1], count[2], count[3]);
return 0;
}
```
这个程序定义了一个`fun`函数,它接收一个字符串`s`和一个计数数组`b`。遍历字符串`s`的每个字符,根据字符类型更新计数数组。在主函数中,先读取字符串,然后调用`fun`函数统计字符类型,并输出结果。
2022-06-04 上传
2021-10-01 上传
2023-05-19 上传
2022-07-11 上传
2021-10-06 上传
2021-10-11 上传
2021-09-14 上传
2021-10-04 上传
m0_61100484
- 粉丝: 0
- 资源: 1
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器