活动介绍
file-type

C语言编程:字符串大小写转换与字符比较

下载需积分: 10 | 914KB | 更新于2024-12-07 | 180 浏览量 | 3 评论 | 19 下载量 举报 收藏
download 立即下载
"国家计算机考试二级C语言南开大学100题" 在这份资源中,主要涉及了两个C语言编程题目,分别属于填空题和改错题类型,旨在考察考生对C语言基本语法、字符串操作以及ASCII码的理解与应用。 1. 填空题: 题目要求编写一个函数,将输入的字符串中所有的小写字母转化为大写字母,并保持其他字符不变。提供的部分代码定义了一个main函数,以及一个未完成的函数fun。我们需要填充函数fun的空白部分。 - 首先,注意到代码中有一个for循环的初始化部分缺失,可以填入`for(j=0; ;j++)`,这个循环将遍历字符串直到遇到空字符'\0'。 - 第二个空白处,要求将小写字母转换为大写,可以通过在其ASCII值上加上32来实现,因此填写`*(pf+j)+='A'-'a'`,因为'A'到'Z'的ASCII值比'a'到'z'大32。 - 最后一个空白处,由于循环结束后需要继续检查下一个字符,所以填写`j++`。 完整的fun函数应如下所示: ```c void fun(char* pf) { int j = 0; while (*(pf + j)) { if (*(pf + j) >= 'a' && *(pf + j) <= 'z') { *(pf + j) += 'A' - 'a'; j++; } else { j++; } } } ``` 2. 改错题: 题目提供了一个比较两个字符串并构建新字符串的fun函数。错误在于比较字符和更新指针的位置。在原始代码的两处注释`/******found*********/`下,需要修改。 - 第一处错误:while循环条件应该同时检查两个字符串是否到达末尾,即`while(*p&&*q)`,确保在其中一个字符串结束时停止比较。 - 第二处错误:在更新指针时,无论字符是否相等,都应向前移动。因此,两个`if`语句应该改为`p++, q++;`,这样可以保证两个指针同步前进。 修复后的fun函数应如下所示: ```c void fun(char* p, char* q, char* c) { int k = 0; while (*p && *q) { if (*p <= *q) c[k] = *q; else c[k] = *p; p++; q++; k++; } } ``` 这两个题目都涉及到C语言的基础知识,包括字符串操作、指针使用、ASCII码转换以及条件判断。解决这些问题需要扎实的C语言基础和逻辑思维能力。

相关推荐

资源评论
用户头像
艾斯·歪
2025.06.28
这份文档资料为备考二级C语言的考生提供了经典的南开大学100题,覆盖了考试的各个重要知识点。
用户头像
今年也要加油呀
2025.05.14
针对考试实战,这100题精选自南开大学的经典题库,对提升编程技能非常有帮助。
用户头像
13572025090
2025.04.23
适合考前冲刺,南开大学出的这100题精炼高效,能有效检验学习成果。
Mr_HansonUP
  • 粉丝: 0
上传资源 快速赚钱