So, what, we're going to hope that the single character to be stored isn't unicode?
Because with either char(1) and varchar(1), we're going to disallow a whole bunch of unicode characters from being stored. I must have missed that in the question, the part that this particular character to be stored was going to require only one byte of storage.
The question asked "best".
I submit that the 23% of respondents who answered nchar(1) got it right, because I have some "single character" test cases that will fail with char(1) and varchar(1). Or, are we going to consider failing to a store character that can be stored in nchar(1) to be "best".
Fair question, wrong answer.