
C语言编程:字符串大小写转换与字符比较
下载需积分: 3 | 1.29MB |
更新于2024-07-31
| 179 浏览量 | 举报
收藏
“全国计算机等级考试二级C语言上机题及改错题解析”
这篇资源主要涉及的是计算机二级C语言考试的上机操作部分,包括填空题和改错题。下面是针对这两个题目进行的详细解释:
1. **填空题**:
题目要求编写一个函数,将输入字符串中的所有小写字母转换为大写字母,并保存在原字符串中。已给出部分源代码,需要补充完整。
- 在`main`函数中,首先调用了`system("CLS")`清屏,然后输出原始字符串。接下来,需要开始处理字符串。这里缺少了一个开始循环的语句,应该填写`for( ; j < N; j++)`,这样可以遍历整个字符串。
- 第二个空白处,需要将小写字母转换为大写字母。由于C语言中字符的ASCII码相差32(小写字母到大写字母的差值),可以写为`*(pf+j) -= 32`。
- 第三个空白处,对于非小写字母的字符,直接跳过不做处理,所以这里填写`continue;`。
完整的代码段应该是这样的:
```c
for( ; j < N; j++)
{
if(*(pf+j)>='a'&&*(pf+j)<='z')
{
*(pf+j) -= 32;
}
else
{
continue;
}
}
```
2. **改错题**:
这道题的目的是比较两个字符串的对应字符,把ASCII值小或相等的字符存入新的字符串。已给出的程序中有错误,需要找出并修正。
错误出现在`while`循环的条件以及其中的`if`语句。首先,`while(*p||*q)`这个条件会使得循环一直进行,即使其中一个字符串已经结束,导致程序出错。应该改为`while(*p&&*q)`,确保只有当两个指针都指向有效字符时才进行比较。
接下来,`if`语句的逻辑有问题,`if(*p<=*q)[if(*p=>*q)]`这部分应该是选择ASCII值较小或相等的字符。这里存在语法错误,应该修正为`if(*p<=*q)`,然后将正确的字符赋值给`c[k]`。
修正后的代码段应该是这样的:
```c
while(*p && *q)
{
if(*p <= *q)
{
c[k] = *p;
}
else
{
c[k] = *q;
}
if(*p) p++;
if(*q) q++;
}
```
当循环结束,`p`和`q`可能未到达字符串末尾,因此还需要处理可能剩下的字符。如果`*p`还有值,将其添加到`c`中,然后移动`p`;同样,如果`*q`有值,也执行相同操作。最后记得添加字符串结束符`\0`。
通过以上分析,考生可以更好地理解C语言中字符串操作、字符比较和条件判断的基本原理,这对于准备计算机二级C语言考试至关重要。
相关推荐









fangdng
- 粉丝: 0
最新资源
- vivi开发笔记:新手入门指南与实用技巧
- ASP.NET动态用户控件添加与卸载示例源码
- PhotoShop高级试题案例解析与应用
- 源码分享:AJAX + CSS打造清爽JSP聊天室
- 谭浩强教授出品:清华大学C语言课件,学习者的福音
- 《C++程序设计教程(第二版)》源代码解析
- 更新版自绘CLISTCTRL控件功能及文件操作展示
- 深入了解Ant构建工具的教程指南
- C#实现网络ping程序设计与应用实验报告
- 图形文件的二进制数据流读取与写入方法
- TFTP文件传输服务的tftpd32源代码项目
- ASP源码实现:小小留言本V2.0功能介绍
- 快速查杀文件夹同名副本病毒的FolderCure软件介绍
- VB2005打造的学生管理系统及其应用
- java程序设计教程:初学者的实用PPT
- C语言实现的遗传算法教程及程序包
- 清华老师深度解析多媒体课件制作与通信原理
- 猎人过河安全渡船C++解决方案
- ASP.NET三层架构部署方法与组件装配技术
- JSP文件上传功能实现教程及示例代码
- Companion.JS: IE下强大的JS调试工具
- 企业Intranet网络建设与服务器配置详解
- 中级.NET程序员提升必备:经典电商网站源码分析
- Java解释器jcpro350.zip:用户认证功能的运行环境