1. Why must I have one function call another function to call another function to print these times?
2. Can I call one function that identifies the ID of the alarm and prints the time in that same function without having to call multiple functions?
1. You don't need to do that. You choose how to structure your program and using functions with parameters is a good idea. The easiest way to simplify things would be to put the code from the digitalClockDisplay() function in the showAlarmTime() function.
2. Yes. Move the code that you have into a single function if that is what you want to do.