b. 9.0.
As RH&E say,
Java determines the result type of the conditional, or ternary, operator when it compiles. Java sees it will be choosing between an
int and a
double, so it picks the wider of the two (
double) for the ternary's result type.
See the second bullet point's third sub-bullet
here in the Java Language Specification for more details.
HTH
Art