The following assumptions and constraints apply to programming questions:All inputs will be valid. No error checking is necessary.You may add your own#definesand define your own structs/enums.You may define your own helper functions in the files to be submitted.You may use any functions provided by the#included libraries.Youmust not#includeany additional libraries.You must not use global variables or static variables. Solutions that do so will receivezero marks.Your solution must not start any new programs or communicate with externalprograms. Solutions that do so will receive zero marks.Here are some additional details about programming questions:Solutions which do not attempt to solve the question generally but instead onlyhardcode return values for specific tests will receive zero marks.Code style is not marked (exceptthat global variables and static variables are strictlyforbidden). However, good style may help a marker understand your code better,which will give you a greater chance of being awarded partial marks if your codedoes not work.Memory leaks/errors will not be penalised.However, we advise that you ensurethere are no memory errors in your code, as programs containing memory errors arenot guaranteed to behave correctly or consistently. A program that works when youtest it during the exam but contains memory errors may not work during autotesting.