As CM's powers are divinely authored, I think Zee would have trouble attacking him directly. Add to that the fact that he has the speed of Mercury which would allow him to attack before she prepared a spell. If she had the drop on him though, she could do it, but she would need to catch him unawares.
Yeah, but of course Zatanna has the advantage in being a pretty lady, doesn't she? I mean, Billy Batson is thirteen. He so wouldn't be able to handle himself around a chick who leaves her legs bare, smiling with pearly whites. She could just ask him to throw the fight, touch his jaw gently and flirtaceously, and that's the end, there. Seriously.
We're all forgetting the puberty issue with Batson...Zatanna would win because in all probability, Cap wouldn't hit a lady, especially a pretty one whose a good guy and got a nice smile to boot. So...yeah.
I i'm not sure but I'm aiming towards Cap just because of his speed but I'm not sure. I'm not going to use this as a winning factor but in Young justice (SPOILER) when Vandal Savage took over The Justice League Captain Marvel attacked Zatanna and while he was heading to attack her and she said Blurt Out Shazam backwards but know I don't think that would work since he was being controlled by Klarion who doesn't know the extent of the Cap's powe but if Zatanna gets a good spell she could get the adavantage but I'm going with Captain Marvel.