To find the average rate of reading for the day, we first need to find the total time Sonny spent reading.
In the afternoon, Sonny reads 100 pages at a rate of 60 pages per hour. Therefore, it took him 100/60 = <<100/60=1.67>>1.67 hours to read in the afternoon.
In the evening, Sonny reads another 100 pages at a rate of 40 pages per hour. Therefore, it took him 100/40 = 2.5 hours to read in the evening.
So, the total time Sonny spent reading for the day is 1.67 + 2.5 = 4.17 hours.
To find the average rate of reading, we divide the total number of pages read (200) by the total time spent reading (4.17 hours).
Therefore, Sonny's average rate of reading for the day is 200/4.17 = <<200/4.17=47.99>>47.99 pages per hour.
Rounded to the nearest whole number, Sonny's average rate of reading for the day is 48 pages per hour.
Answer: B. 48