Arrays and how they work in C (without pointers)
Learning Goal: I’m working on a c programming exercise and need support to help me learn.This lab is designed to introduce you to some of the programming structures you’re probably used to from otherlanguages, such as strings, if statements, and loops. There are likely some other things explained here that you mightnot have dealt with, such as bitwise operations, recursion, switch statements, and low level arrays. By the end of thislab, you will be expected to understand the following:1. Booleans ( Bool type from C99).2. Bitwise operations.3. Arrays and how they work in C (without pointers).4. Strings and how they work in C.5. Conditional Statements (if, if-else, ternary, switch).6. Loops (while, do-while, for).7. Simple recursionIn this lab you will be responsible for fulfilling five lab contracts: the libraries contract, the pascal contract, theprimes contract, the adjacent products contract, and the bit encryption contract. Each contract is designed totest you on some of the things you’ve learned throughout the instruction portion of this lab.All contracts must be completed exactly as the requirements are laid out. Be very careful to thoroughly read thecontract instructions before proceeding.This does not, however, preclude you from writing more functions than you are asked for. You may write as manyadditional functions as you wish in your C source file, except in the libraries contract, which has very specific re-quirements.All contracts are designed to be submitted without a main function, but that does not mean you cannot write a mainfunction in order to test your code yourself while you’re writing your programs. It may be more convenient for you towrite a C source file with a main function by itself and take advantage of the compiler’s ability to link files togetherby accepting multiple source files as inputs. When you push your code to Gitlab, you don’t need to git add any ofyour extra main function source files.The programs you write for this lab will be compiled using your ‘Lab3/lib‘ folder as a source for headers, meaningany functions contained within mmath.h and mstring.h will be explicitly compiled. The compiler will also be runwith the -lm flag, in case you need to import the math library.