C++ implementation of queue using array
Distributing the internal state of your queue over some globals and two arguments is an interesting decision. At least that way you can get the worst of all worlds.
enqueue assumes the queue is not full, dequeue assumes it is not empty. That's also a questionable decision.
You know that streaming a char is more efficient than streaming a length-1-string?
return 0; is implicit for main() in C++ and C99+.
I wonder why you wrap a conditional statement into its own block exactly one time. Some advocate using a block everywhere, others only where needed, but both camps are united in wanting consistency.
The inside of your first three functions somehow lost a level of indentation... and there should be a newline before main().