В общем делаешь так:
1) считываешь фамилии из файла данных в какой-нибудь массив (со строчным типом скорее всего)
2) создаешь отдельнцю функцию, содержащую в себе русский алфавит. аргументом к функции будет буква а возвращать она будет номер этой буквы в русском алфавите (1-33). подругому сравнивать не получится, а вот когда буква имеет номер - все встает на свои места.
3) создаешь ещё одну функцию (рекурсивную) , она будет использовать предыдущую функцию. данная функция отсортирует фамилии сначала по первой букве, потом будет отсортировывать по второй и так далее, но только в тех местах где была сортировка по первой, в том собственно и состоит рекурсия. без рекурсии тут никак не обойтись, если хочешь отсортировать по алфавиту полностью а не только по первой букве (т. е. чтобы получилось Антон_Маша_Миша, а не Антон_Миша_Маша) . вопрос с рекурсией очень сложный, т. ч. советую разобрать его отдельно. поищи в инете что-нибудь об этом, возможно в лекциях по проге у тебя что-то об этом есть.
4) ну и в итоге выводишь отсортированный массив фамилий в файл результатов