C语言编程:合并字符串与转换大写
版权申诉
150 浏览量
更新于2024-08-19
收藏 45KB PDF 举报
"这是一个关于2011年计算机二级考试C语言部分的上机题集,其中包含了填空题和改错题。题目主要考察C语言中字符串操作和指针的运用。"
在C语言中,字符串是字符数组,通常以空字符'\0'作为结束标识。在提供的代码中,`fun()`函数的目标是将`str2`中的字符串连接到`str1`的末尾。首先,我们来看填空题的部分。
1. 填空题的解答:
- `*(p1+i)` 是用来访问`str1`数组中位置`i`的元素。在填空1处,我们需要将`str2`当前字符赋值给`str1`的`i`位置,因此正确的填空是 `*(p1+i) = *p2`。
- 填空2处的`*p2`用于获取`str2`当前字符的值,因为在循环中,我们需要判断`p2`是否已到达字符串`str2`的结束标志`\0`,所以填空2应保持不变,即`*p2`。
- 填空3处的`*p2++`用于在每次循环中将`p2`向后移动一位,以便指向`str2`的下一个字符。因此,此处的填空应是`*p2++`,这样可以同时取值并更新指针的位置。
现在,我们来看改错题的部分。给定的程序`fun()`应该将输入的字符串`tt`中的小写字母转换为大写。但代码中没有提供这部分功能。为了实现这个功能,我们需要使用C语言的`toupper()`函数,它可以把字符转换成其大写形式。以下是改正后的代码:
```c
#include <stdio.h>
#include <ctype.h> // 引入 toupper() 函数所在的头文件
void fun(char *tt) {
while (*tt) {
if (islower(*tt)) { // 判断当前字符是否为小写字母
*tt = toupper(*tt); // 转换为大写字母
}
tt++; // 移动tt指针到下一个字符
}
}
int main() {
char tt[100];
printf("请输入字符串: ");
scanf("%s", tt);
printf("原字符串: %s\n", tt);
fun(tt);
printf("转换后的字符串: %s\n", tt);
return 0;
}
```
在这个改正后的程序中,`fun()`函数通过`islower()`检查每个字符是否为小写字母,如果是,则用`toupper()`将其转换为大写。这样,输入的字符串`tt`中的所有小写字母都会被正确地转换为大写字母。
总结,本题集主要涉及了C语言中的字符串处理、指针操作以及字符转换等基本概念。对于准备计算机二级考试的考生来说,理解这些基础知识并能灵活运用是非常重要的。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-04 上传
2021-10-04 上传
2021-10-12 上传
2021-10-12 上传
2021-10-10 上传
2021-10-04 上传
霖落^0^时空
- 粉丝: 3
- 资源: 9万+
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程