1. String reversal 30 Write a function that reverses a string (char array) iteratively. The function should not alter the original string but return a pointer to the reversed string. 2. K-way swap 30 In the class, swapping of two variables has been covered. Now think of extend it to of k-way swapping. Given k, a k-way swapping on an array of length n copies a[i] into a[(i+k) mod n]. For example, if a = {1, 5, 3, 17, 9} and k = 2, then after k-way swapping a = {17, 9, 1, 17, 3} Design the k-way swap function which takes two arguments: (i) pointer to an array of length n, and (ii) an integer k and perform the k-way swap as explained above. Your program should take n integers as input from user to fill the array and also seek k as input from the user for performing k-way swap. 3. Rabbit walk 40 A rabbit walk is defined by a sequence of jumps which starts from a location and returns back to the starting location. We can repesent such a Rabbit walk by an array A of n numbers, where A[i] denotes the next array index to which the rabbit should jumps from the location i. For example, the sequence: 2 3 4 5 0 1 indicates that the Rabbit follows the jump sequence: 0->2, 2->4, 4->0 and stops. Define a character array c of size N. Populate the array c with characters between A-Z taken as input from the user. Whenever the rabbit is at a index i, it prints the ith entry of c. Your task is to print such a walk from a given start position. A sample input/output is provided below: Input: 1. An integer N which is the size of the array (2 <= N <= 100). 2. A sequence of N characters to be used for populating array c. 3. Set of N integers which define the array A. (Note: your input should be such that, a rabbit walk will always exist with starting positions 0.) Output: It should contain the path followed by the rabbit, and the length of the path assuming rabbit always starts form location 0. A sample input/output for Rabbit walk problem is provided below: Sample Input: 6 2 3 4 5 0 1 : Q W E R T Y Sample Output: Q -> E -> T -> Q 3