南开大学C语言编程挑战:字符串逆置与矩阵转置

需积分: 17 13 下载量 186 浏览量 更新于2024-12-24 收藏 912KB DOC 举报
"C语言编程题目集,包括字符串逆置和矩阵转置的实现" 这两道题目均属于C语言的基础编程练习,旨在提升对字符串操作和数组处理的能力。 首先,我们来看第一题——字符串逆置。在这个问题中,我们需要编写一个名为`fun`的函数,该函数接收一个字符指针`s`,并将指向的字符串进行逆置。实现方法是通过两个指针,一个从字符串头部开始(初始化为0),另一个从尾部开始(初始化为字符串长度减1)。然后,这两个指针向中间移动,每次交换它们指向的字符,直到两个指针相遇。这个过程可以通过一个for循环来完成,循环条件是`s+i<s+n-1-i`,其中`n`是字符串的长度。在循环内部,我们使用临时变量`t`来存储`s+i`处的字符,然后交换`s+i`和`s+n-1-i`处的字符。最后,当整个字符串逆置完成后,函数返回,没有返回值。 接下来是第二题——矩阵转置。这里的目标是编写一个程序,接受一个3x3的矩阵,并将其转置,即将行变为列,将列变为行。转置的关键在于理解矩阵的索引转换,即原矩阵的元素`array[i][j]`在转置后应变为`array[j][i]`。为了实现这一点,我们可以使用两个嵌套的for循环,外层循环遍历行(从0到1),内层循环遍历当前行之后的列(从当前行号加1到2)。在循环内部,我们用一个临时变量`t`来保存当前元素`array[i][j]`的值,然后将`array[j][i]`的值赋给`array[i][j]`,并将`t`的值赋给`array[j][i]`。这样,我们就完成了矩阵的转置。在主函数中,我们创建了一个3x3的矩阵,并调用`fun`函数进行转置,最后打印出转置后的矩阵。 这两道题目都是对C语言基本操作的练习,涵盖了字符串处理、数组操作以及基本的循环结构。通过解决这些问题,学习者可以加深对C语言指针、数组和字符串的理解,以及如何利用这些基础知识来解决问题。在实际编程中,这样的基础能力是非常重要的,因为它们构成了更复杂算法和数据结构的基础。