Is there a preferred citation style for computer science papers?
Regarding your Q1: Both ACM and IEEE use citation style #1 -- "[1]", so it's safe to say that most readers of academic articles in CS are most familiar with that style.  Therefore, if you use style #1, your paper will look similar to most conference and journal articles in CS.

Regarding your Q2: it is my experience that citation style #3 -- "Smith (2015)" -- is most effective for the reader.  This opinion is shaped by my department -- Computational Social Science -- so I read a mix of papers from CS, Statistics, Social Science, Economics, and others.

My reason for favoring #3 is that it makes it easier to read the paper in line.  Having read many papers in a given field, I am familiar with the most cited and most seminal work.  If I see "Padgett and Powell (2012)", I immediately know what that reference is, or I can guess.  But if I see "[5]", it tells me nothing.  I have to go look at the reference list, then memorize that "[5]" stands for "Padgett and Powell (2012)" every time I see it.

But the nature of the discipline and the nature of the paper lead to some differences in the role citations serve in the text.  In Social Sciences in general, citations have a structural in the discourse in a field.  Citations often mark schools of thought, lines of argument, or research lenses.  In contrast, in Computer Science citations have a much more utilitarian function -- they point to papers that provide theoretical foundations, that attempted other approaches to the problem, that solved sub-problems, and so on.  In a way, these are the intellectual "bill of materials" for the research behind the CS paper.  The numbered references are sufficient for this, giving anyone pointers to the "bill of materials" should they need them.

Another justification for citation style #1 is to shorten the page count for papers.  In my opinion, this is less and less justified in an era where most people read papers electronically, not in print.