printf is a function. Imagine you wrote this function definition. Now, what it does entirely depends on what you wrote. The function is given a number of arguments, but you always start processing the first one which is just a char pointer to an address. You just keep on printing any character from that address till a '\0' (null character) is found. If '%' is found in between, you do different job like if '%d' is there you take the next argument and print its decimal equivalent etc.
Now, if you understand above '%s' is not required if we are just printing one string.