C语言编程:程序练习题解决方案
需积分: 9 64 浏览量
更新于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-06-02 上传
2022-07-11 上传
2021-10-06 上传
2021-10-11 上传
2021-09-14 上传
2021-10-04 上传
m0_61100484
- 粉丝: 0
- 资源: 1
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程