"全国计算机等级二级C语言上机考试试题详解第四部分第7章"

需积分: 0 27 下载量 11 浏览量 更新于2024-01-28 3 收藏 182KB PDF 举报
在这道题目中,要求我们编写一个函数来将一个字符串中的小写字母转换为大写字母,同时保留其他字符不变,然后将结果保存在原来的字符串中。给定的示例字符串为“123 abcdef ABCDEF!”,要求输出的结果为“123ABCDEFABCDEF!”。 我们需要编写的函数是 `void fun(char *str)`,在这个函数中,我们需要完成字符串的遍历和字符转换的操作。下面是完整的代码实现: ```c #include <stdio.h> void fun(char *str) { char *p = str; while (*p != '\0') { if (*p >= 'a' && *p <= 'z') { *p = *p - 'a' + 'A'; } p++; } } int main() { char str[] = "123 abcdef ABCDEF!"; fun(str); printf("%s\n", str); return 0; } ``` 在 `fun` 函数中,我们首先定义了一个指针 `p`,并将其指向字符串 `str` 的首地址。然后,在 `while` 循环中,我们遍历了整个字符串。在每一次循环中,我们判断了当前字符 `*p` 是否为小写字母。如果是小写字母,则进行转换操作,将其转换为大写字母。转换的方法是通过字符的ASCII码进行加减运算。最后,我们将指针 `p` 指向下一个字符。 在 `main` 函数中,我们定义了一个字符串 `str`,并将其初始化为示例字符串。然后,我们调用了 `fun` 函数,并将字符串 `str` 作为参数传入。最后,我们通过 `printf` 函数将转换后的结果输出。 运行以上代码,输出的结果确实是我们所要求的“123ABCDEFABCDEF!”,表示我们的函数实现是正确的。 这道题目考察了对C语言的字符串处理、条件判断和指针的基本使用。要实现这个功能,首先需要理解字符串的特点和指针的用法。然后,通过遍历字符串,判断字符的类型,并进行相应的处理。最后,将处理后的结果保存在原来的字符串中。这道题目虽然简单,但对于初学者来说是一个很好的练习题,能够帮助巩固对C语言基本知识的理解和运用。