C语言二级考试:字符串转大写及字符串比较真题解析

需积分: 0 3 下载量 7 浏览量 更新于2024-10-14 收藏 1.05MB DOC 举报
本资源提供的是全国计算机等级考试二级C语言的相关真题练习,主要涉及两部分:填空题和改错题。 一、填空题 1. 该填空题要求在`main`函数中实现字符串大小写转换功能。函数`fun`的目的是将输入字符串`str`中的所有小写字母字符转换成大写字母,其他字符保持不变。以下是代码段的补充: ```c // 补充部分 if (*(pf+j) > 'a' && *(pf+j) < 'z') { *(pf+j) = toupper((unsigned char)*(pf+j)); // 使用toupper函数将小写字母转为大写 j++; } else { pf++; // 如果不是小写字母,不进行转换,直接移动指针 } ``` 这里使用了C标准库中的`toupper`函数,将字符转换为其对应的ASCII大写字母。 2. 第二个`else`分支中的`pf++;`表示当遇到非字母字符时,只需简单地将指针向前移动一位,继续处理下一个字符。 二、改错题 题目给出了一个函数`fun`,其功能是逐个比较两个字符串`a`和`b`中对应位置的字符,并将ASCII值较小的字符放入结果字符串`c`中。以下是已找到的错误和修复方法: 错误部分: ```c if (*p <= *q) { // 应该使用==进行相等判断 c[k] = *q; } else { c[k] = *p; } ``` 修复后的代码: ```c if (*p == *q || *p < *q) { // 使用==检查相等,或者*p小于*q c[k] = *p; } else { c[k] = *q; } ``` 这部分代码修正了条件判断,确保了当两个字符相等或`a`中的字符ASCII值小于`b`中的字符时,将`a`的字符存储到结果字符串`c`中。 总结: 本资源提供了针对全国计算机等级考试二级C语言的实战练习,包括字符串操作和函数设计的题目。通过解答这些问题,考生可以提升对C语言基础语法、字符串处理以及逻辑控制的理解,同时锻炼编程实践能力。