file-type

南开大学计算机二级C语言100例题详解:逆置字符串与矩阵转置

DOC文件

下载需积分: 17 | 912KB | 更新于2025-02-17 | 23 浏览量 | 53 下载量 举报 收藏
download 立即下载
本资源是一份针对计算机等级考试二级C语言的练习题集,包含了两个实用的编程题目及其解答。第一个题目要求编写一个名为`fun`的函数,功能是逆置输入字符串中的字符顺序。这个函数通过使用双指针法,从字符串两端开始,逐次交换字符位置,直到到达字符串中间。需要注意的是,在交换过程中,需要先将字符值复制到临时变量中,避免直接修改内存地址。 ```c fun(char *s) { int i = 0, t, n = strlen(s); for (; s[i] < s[n - 1 - i]; i++) { t = *(s + i); // 取出字符值 *(s + i) = *(s + n - 1 - i); // 交换位置 *(s + n - 1 - i) = t; // 再将字符值放回原位置 } } ``` 第二个题目是关于矩阵转置,要求实现一个函数`fun`,接受一个3x3的整型数组作为参数,将矩阵的行和列互换。这里的关键在于理解矩阵的行和列索引转换,根据矩阵的对称性,可以通过嵌套循环,外层控制行索引,内层控制列索引,交换对应元素的位置。代码示例如下: ```c fun(int array[3][3]) { int i, j, t; for (i = 0; i < 2; i++) { // 走过矩阵的左上角 for (j = i + 1; j < 3; j++) { t = array[i][j]; // 交换前保存当前元素 array[i][j] = array[j][i]; // 交换行和列的元素 array[j][i] = t; // 再恢复被交换的元素 } } } ``` 主函数部分则用于测试这两个函数,通过用户输入字符串或矩阵,并调用相应的函数进行操作,然后输出处理后的结果。这份资料对于学习和巩固C语言基础,特别是字符串操作和二维数组处理,具有很好的实战指导意义。

相关推荐