Для написания каких программ может понадобится параметры функции main argc argv ?
Для программ, куда вы будете передавать данные в программу из вне.
argc - показывает сколько "объектов" мы передаем программе на входе (читай - при запуске)
argv[] - сами объекты
То есть вы можете передавать объекты сразу в программу и уже работать с ними на лету.
Тут это подробно описано.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей