Dlaczego tak
W wyrażeniu a / b oba argumenty są typu int, więc wykonywane jest dzielenie całkowite dające 3, a dopiero potem wynik jest zamieniany na double, czyli 3.0. W drugim wyrażeniu rzutowanie (double) a ma wyższy priorytet niż dzielenie, więc dzielone jest 7.0 / 2 i wynik to 3.5. Odpowiedź 3.5 3.5 zakłada, że typ zmiennej docelowej wpływa na sposób dzielenia, co nie jest prawdą.