Answer:
The buffer has room for 499 characters (you always have to reserve 1 for the terminating \0 character).
The code copies all characters passed in the commandline (argv[1]) into this buffer without checking. If there are more than 499 characters supplied, these will be copied into a memory location that is not intended for it. This will probably cause your program to crash, but if the extra data is somehow executed by the processor as if it were a program, this could be a way to sneak a virus into your computer.
So, while copying data, it is important to always limit the maximum amount to the allocated space.
The answer is 2-to-the-power-of-n, since for every input, the number of different combinations doubles. From your list I think answer A is meant to indicate 2ⁿ.
Uni code is short for universal code , it was created so that all countries could communicate together without the need for special encoding for each country