The program initializes an array \(a[2] = \{20.0, 25.0\}\), two pointers \(p\) and \(q\), and performs the following steps:
1. \(p = a\): Pointer \(p\) now points to the first element of the array, i.e., \(a[0] = 20.0\).
2. \(q = p + 1\): Pointer \(q\) now points to the second element of the array, i.e., \(a[1] = 25.0\).
3. The statement \texttt{q - p} calculates the difference in pointer positions. Since \(q\) points to the second element and \(p\) points to the first element, \(q - p = 1\).
4. The statement \texttt{*q - *p} calculates the difference between the values pointed to by \(q\) and \(p\). This gives:
\[
*q - *p = a[1] - a[0] = 25.0 - 20.0 = 5.0.
\]
5. The \texttt{printf} statement prints these values as integers:
\[
\text{Output: } (int)(q - p) = 1, \quad (int)(*q - *p) = 5.
\]
Final Answer:
\[
\boxed{\text{(B)}}
\]