Is it exploitable? Possibly. You've already told us that you can cause a crash, so you may be able to DoS a system by crashing it... depending upon where argv1 comes from. If it's a hard coded value, or if it's generated by a calling app and can only ever be between 0 and 20, then it may not be exploitable in the system. It would still be a bad coding pattern, since a small change could make it exploitable. Or if it's never executed code, or if it's code that is only executed by the you and nobody else ever executes it, firewall rules preventing values below 0or above 20, etc, then it wouldn't be exploitable.
Is it executable? Maybe. We don't have enough information to determine either way. We don't know if the compiler inserts stack canaries. We don't know if there's other code that controls argv1 and forces it to be a safe value.
Try using !exploitable if you're running on windows if you want a hint (I don't remember the tools for other OSes).