Actually, I'd rather use "hit" and "blow" for "coup" and "strike" for "frappe". There are some differences between the two words which I'll try to detail them here, though note that I'm "only" a French native speaker, not a linguist nor a French teacher. There might be more nuances than what I'll be able to tell here.
"Coup" is a much broader term
There are a LOT more expressions around "coup" than "frappe". Here are a few examples :
- Payer un coup à boire : Offer a drink (we do not strike the bottle, though we could hit rock bottom after a few ones :p).
- Prendre le coup : Getting the hang of. Here, it means more about a "skill" you earn or have.
- Donner un coup de pinceau : Make a brushstroke.
- À coup sûr : Most likely.
And so on and so on. For "frappe", you will find a lot less deviation from its standard, attack-related usage.
"Coup" is slightly more about the effects of the action, while "frappe" is more about the act itself and the source
Focusing on the "something touch more or less violently another thing" term, you'll see more often that :
- Que l'armée a fait une frappe d'artillerie exceptionnelle, qui s'est terminé en un coup au but : The militaries have made an incredible artillery strike, which has hit its target.
- Que le guerrier s'est beaucoup entraîné sur ses frappes, mais qu'il a donné un coup mortel à son adversaire : The warrior trained a lot on his strikes, but he landed a lethal blow on his opponent.
The difference is light, but it is here. When you use the word "coup", you're ever so slightly more focusing on the target of the strike, the damage done. "un coup est précis" when the hit location is accurate, while "une frappe est précise" when the gesture is accurate, even though one usually implies the other.
While this is light and sometimes you could work with either word, it induces some situations where we would largely favor one over the other, and they cannot be exchanged that easily. Most notably, "quelqu'un ne subira pas une frappe, il subira plutôt un coup". It's also the reason (I think) that we are much more likely to talk about a "frappe aérienne" than a "coup aérien", as we focus more on the type of attack (air, artillery...) than the damage done. Actually, now that I think about it, it's even more evident when we talk about the expression "frapper un grand coup" (to strike or to land a big blow), where frappe/frapper is followed up by coup, as if to emphasize both the action and the effect.
"Frappe" has a direct verb counterpart, while "coup" has not1
You read it just before, I actually used the verb "frapper", which -as far as I use the word in day-to-day life- is more used than the word "frappe".
Note however that the meaning of "frapper" is ever slightly so different than "frappe", as if you look at the definition of the verb, it means "donner un coup"!
On its side, coup needs to use the verb "donner" or "prendre" as in "donner un coup" or "prendre un coup" to keep the exact same meaning. We can't really use the verb "couper", as its translation is "to cut"2, so not really applicable to hitting something.
That's all I can reasonably tell, hope it will help you better understand some details regarding the two words :).
1 : As stated in comments, the verb "couper" is grammatically and etymologically just an extension of "coup". But the actual meaning of "couper" is much closer to the one of "trancher" as it tells something was cut apart. You can "couper avec des ciseaux" (cut with scissors), but you cannot really "couper avec un marteau" (cut with an hammer), while you'd be able to "donner un coup de marteau" (strike with an hammer).
2 : Excluding many expressions that are bound to this verb too (couper son vin avec de l'eau, couper court à la discussion...), but that's a topic for another discussion :).