Just to make sure this exercise is as it should be:
Is "None of the above?" the correct answer?
First one will also match files not ending in ose.dat such as "osefake.dat" or, if you like a chemical name "oseltamivir.dat" or "furosemide.dat".
Second one will only find files with the exact name "ose.dat".
Third one finds the correct files, but it outputs the lines not matching "temp" instead of the filenames of files that do not contain the word "temp".

A solution should look like that `grep --files-without-match temp $(find . -name '*ose.dat' -print)`.