探索C语言指针练习题:字符串查找、环形计数与自定义strcmp

需积分: 47 23 下载量 15 浏览量 更新于2024-09-08 1 收藏 66KB DOC 举报
本文档主要针对C语言初学者提供了一些实用的编程练习题,旨在帮助理解和掌握指针的概念。我们将依次分析每个题目,并深入解释其中涉及的关键知识点。 1. **第一个题目** —— 找出字符串中第一个只出现一次的字符 在这个题目中,程序员需要通过输入一个字符串`array`,遍历该字符串并统计每个字符出现的次数。使用一个字符计数数组`count`来存储字符出现的频率。在遍历过程中,遇到字符`array[i]`时,将其对应的ASCII码减去'a'得到索引`i`,然后将`count[i]`加1。接着,检查`count`数组,找到第一个值为1的元素`temp`,即为只出现一次的字符的ASCII码。最后,通过再次遍历`array`找到该字符首次出现的位置`position`。 2. **第二个题目** —— 剩余人在一圈数数游戏中的位置 这个问题涉及模运算和循环结构。程序首先获取总人数`n`和循环次数`m`,然后利用`(last + m) % i`计算出每个人在新一轮循环中的位置。由于是环形结构,当`last`超过`n`时,会从头开始算。当`last`达到`n`后,继续加上`m`,这相当于在原位置的基础上加上循环次数,然后取余`n`,确保结果落在1到`n`之间。最后输出剩下的人的初始位置`last + 1`。 3. **第三个题目** —— 自定义strcmp函数实现字符串比较 这个任务要求编写一个名为`stremp`的函数,用于比较两个字符串`s1`和`s2`。函数的核心是遍历两个字符串,当发现第一个不同的字符时,返回这两个字符ASCII码的差值。如果两个字符串完全相等,返回0。这个过程涉及到指针操作,比如`p1`和`p2`分别指向`s1`和`s2`的首字符,通过逐个字符对比进行判断。 通过这些题目,学习者可以实践如何使用指针访问数组元素、控制循环、以及在函数中处理字符串比较等基本概念。通过解决这些问题,初学者能更深入地理解指针在C语言中的应用,提高编程技能。同时,这些题目也能锻炼逻辑思维和调试能力。