La sintassi per la dichiarazione statica contestuale di un array di strutture è decisamente banale:
codice:
struct {
    char nome[10];
    char cognome[10];
    int voto;
} studenti[30];

PS: Per razionalizzare l'uso della memoria, ed a prescindere da questioni di allineamento delle strutture, "voto" dovrebbe verosimilmente essere un unsigned char, essendo in genere un piccolo intero non negativo.