南开100题:C语言字符串逆置与矩阵转置

需积分: 17 2 下载量 32 浏览量 更新于2024-10-31 收藏 912KB DOC 举报
“南开一百题最终word版”是一份包含南开大学计算机科学相关的经典练习题目的文档,主要涉及C语言编程。这份资料包含了两个具体的编程题目,一个是字符串逆置,另一个是矩阵转置。 首先,让我们详细探讨第一个题目——字符串逆置。字符串逆置是一个常见的编程问题,它要求编写一个函数`fun(char *s)`,该函数能够接受一个字符数组(字符串)并将其内容反转。在提供的代码中,这个功能通过定义一个指针`i`从字符串的开始位置遍历,另一个指针`n`存储字符串的长度。在循环中,`i`会从0递增,直到`s+i<s+n-1-i`。每次迭代,它都会交换字符串头部和尾部的字符。具体操作是,先将`s+i`处的字符暂存到变量`t`中,然后将`s+n-1-i`处的字符替换到`s+i`,最后将`t`的内容放到`s+n-1-i`。这样,当循环结束时,字符串的内容就被成功地逆置了。 接下来,我们看第二个题目——矩阵转置。矩阵转置是指将矩阵的行变为列,列变为行。在这个题目中,我们需要创建一个函数`fun(int array[3][3])`,该函数接受一个3x3的整数矩阵,并对其进行转置。代码中,通过两层嵌套的`for`循环实现这一功能。外层循环`for(i=0; i<2; i++)`遍历矩阵的前两行,内层循环`for(j=i+1; j<3; j++)`遍历当前行之后的所有列。在每次循环中,交换当前位置`(i, j)`的元素和`(j, i)`的元素。由于矩阵是对称的,只需处理左上角部分就足以完成转置,因为其余部分会自动对齐。在主函数`main()`中,展示了如何初始化一个3x3的矩阵,调用`fun()`函数进行转置,并打印出原矩阵和转置后的矩阵。 这两个题目都是基础的C语言编程实践,旨在帮助学习者理解和掌握指针、字符串操作以及二维数组处理等核心概念。通过解决这些题目,学生可以提高其编程能力,尤其是处理数据结构和算法的能力。同时,这些题目也体现了编程中常见的问题解决策略,比如动态规划和迭代。