1. 《C语言程序设计》(谭浩强第五版) 第8章 善于利用指针 习题解析与答案
本章节聚焦于指针在程序设计中的运用,通过一系列习题解析,展示了指针在数组操作、数据排序、字符串处理、数学函数应用等方面的应用。以下为各习题的解析与答案。
1. 输入三个整数并按从小到大的顺序输出。
程序解析:使用指针接收输入的整数,比较并调整指针指向以实现排序输出。
运行结果:将三个整数按从小到大的顺序正确输出。
2. 输入三个字符串并按字母顺序排序输出。
程序解析:同样利用指针接收字符串输入,通过比较字符进行排序。
运行结果:三个字符串按字母顺序正确输出。
3. 对10个整数进行处理,最小值与第一个数交换,最大值与最后一个数交换。
程序解析:使用指针遍历数组,找到最大最小值,调整指针指向实现数据交换。
运行结果:数组元素经过处理,最小值位于首,最大值位于尾。
4. 输入n个整数,使前n个数顺序向后移动m个位置,最后m个数变为最前面m个数。
程序解析:利用指针遍历数组,完成数据的循环移动。
运行结果:数组元素按照指定规则排列。
5. 围成一圈的n个人,按1到3报数,找出最后留下的人的序号。
程序解析:模拟报数过程,使用指针追踪被移除的人。
运行结果:正确输出最后留下的人的序号。
6. 求一个字符串的长度。
程序解析:使用指针遍历至字符串结束,计算长度。
运行结果:输出字符串的准确长度。
7. 将n个字符中从第m个字符开始的全部字符复制为另一个字符串。
程序解析:利用指针定位源字符和目标位置,完成复制。
运行结果:正确复制指定字符段至目标字符串。
8. 输入一行文本,统计大写字母、小写字母、空格、数字及其他字符的数量。
程序解析:使用指针遍历文本,对字符进行分类计数。
运行结果:输出各类字符的准确数量。
9. 将3×3矩阵的元素进行转置。
程序解析:使用指针定位原矩阵和转置矩阵的对应元素,完成转置操作。
运行结果:矩阵元素按照要求正确转置。
10. 将5×5矩阵中最大的元素放在中心,最小元素放在四个角。
程序解析:通过指针找到最大最小元素,调整其在矩阵中的位置。
运行结果:矩阵元素按照指定规则排列。
11. 输入10个等长字符串,排序后输出。
程序解析:使用指针对字符串数组进行排序。
运行结果:10个字符串按字典序排序输出。
12. 处理字符串不等长的情况,使用指针数组实现排序。
程序解析:使用指针数组对不同长度的字符串数组进行排序。
运行结果:字符串数组按字典序排序输出。
13. 编写通用函数求定积分。
程序解析:使用指针接收函数入口地址,实现定积分计算。
运行结果:正确输出定积分值。
14. 将n个数逆序排列。
程序解析:使用指针遍历数组,交换元素位置实现逆序。
运行结果:n个数逆序排列。
15. 处理学生信息,包括平均分计算、不及格学生筛选和高分学生筛选。
程序解析:使用指针对数组元素进行操作,完成功能要求。
运行结果:输出指定学生信息。
16. 输入包含数字和非数字字符的字符串,利用指针提取连续数字。
程序解析:使用指针定位数字序列,输出提取的数字。
运行结果:正确输出连续数字。
17. 自定义字符串比较函数。
程序解析:使用指针比较字符串元素,输出比较结果。
运行结果:输出字符串比较结果。
18. 输入月份号,使用指针数组输出英文月份名。
程序解析:使用指针数组映射英文月份名。
运行结果:输出对应英文月份名。
19. 用于内存管理的new和free函数。
程序解析:new函数分配内存,free函数释放内存。
运行结果:内存成功分配与释放。
20. 使用指向指针的指针对字符串排序。
程序解析:使用指针数组和排序算法实现字符串排序。
运行结果:字符串排序完成。
21. 使用指向指针的指针对整数数组排序。
程序解析:使用指针数组和排序算法实现整数排序。
运行结果:整数数组排序完成。