L'istruzione

fscanf(fp,"%d%f%f", &voti[i].matricola, &voti[i].votoIprova, &voti[i].votoIIprova);
è corretta.

prova a scrivere voti.txt (con ad es. notepad) così:
7
8.2
9.4
5
3.4
5.6

cioè dopo ogni numero premi invio (non hai bisogno di specificare "\n" nel fscanf.
Ciao