This is totally off the top of my head, untested, etc. It is your job to verify it works, troubleshoot, squash bugs:
SELECT a.StdMajor,a.StdNo,a.StdFirstName,a.StdLastName,a.StdGPA
from
student a inner join
(Select StdMajor,MAX(StdGPA ) as maxgpa from student
GROUP BY Stdmajor) b on
a...