C语言等级考试重点:字符串转换与字符比较

需积分: 0 1 下载量 152 浏览量 更新于2024-07-31 收藏 1.13MB DOC 举报
"全国计算机等级考试C语言学习资源,包含填空题和改错题,旨在帮助考生熟悉C语言编程及字符串操作。" 全国计算机等级考试二级C语言的学习至关重要,尤其是对于想要通过等级考试的人来说。这份资料包含了丰富的例题,包括填空题和改错题,可以帮助考生巩固基础知识,提升解决问题的能力。 首先,我们来看填空题。题目要求编写一个函数,将输入字符串中的所有小写字母转换为大写。这是一个常见的字符处理问题,涉及到字符ASCII码的知识。在提供的代码中,定义了一个字符串`str`,并使用`pf`指针遍历这个字符串。根据题目要求,我们需要在空缺处填写适当的表达式或语句。第一空,我们需初始化一个变量`j`来跟踪当前处理的字符位置,所以填写`int j = 0;`。第二空,我们需要将小写字母转换为大写字母,这可以通过将字符ASCII码增加32(因为小写字母比对应的大写字母ASCII码小32)实现,即填写`*(pf+j)+='A'-'a';`。第三空,当遇到非小写字母时,直接跳过不做处理,因此填写`j++;`。 接下来是改错题。题目中的函数`fun()`用于比较两个字符串并生成新的字符串,包含ASCII值较小或相等的字符。问题出在错误的逻辑判断和递增操作。在注释`/* found */`处,应先检查是否到达字符串的末尾,然后进行字符比较和赋值。正确的代码应该是: ```c while(*p && *q) { if(*p <= *q) { c[k] = *p; } else { c[k] = *q; } p++; q++; } ``` 这段修正后的代码确保在两个指针未到达字符串末尾时才进行比较和移动,防止超出字符串范围的问题。 通过练习这样的例题,考生可以深入理解C语言中的字符串操作、字符处理以及逻辑判断等核心概念,这对于提高编程技能和应对考试都大有裨益。同时,这样的练习也有助于培养良好的编程习惯和严谨的逻辑思维能力。