If someone asks a question that either makes no sense, isn't appropriate for the forum, or the person doesn't seem to have even tried at all, I see a few good options.
The hard part is that you have to do something with questions that are hopeless. You don't want them showing up in search results. When you look at downvoting, the intent is actually good, because it comes from multiple people. It just feels awful.
Perhaps those questions should be tagged so that they appear in a different section, like "Questions Needing Clarification." It's functionally the same as closing the question, but it's nicer. It would feel like an open-ended offer of help to the one asking. We want to help - could you just make the question clearer? It's like putting a cat in one of those shelters where they never get killed, just cheaper.
Maybe instead of downvotes they could have pre-worded comments that users add and increment. It functions similarly to the downvote, but it's less discouraging and takes the place of derisive comments. Instead of, we hate you, -5, you're closed, it's "Our community wants to help you, but several members have determined that your question may not have a clear answer because..." And then it's left open for them to fix it.
Wrong forum? "That may be an excellent question, but this forum is for a particular type of question. Perhaps you could post it in XYZ forum, or change it to ask a more specific technical question."
You can say anything if you say it nicely.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.