Вопрос о согласовании названия населенного пункта со словами "город" и "село": в городе
Вопрос о согласовании названия населенного пункта со словами "город" и "село": в городе Полярный (-ом), в городе Кириллове, в городе Бабаево (-е)? в селе Ферапонтове (-о)? в селе Хвалевском (-ое)? Село Спасское-Куркино - отдельная тема: нужно ли склонять, и если да, то обе части или одну? И как быть с вариантом г. и с. (в с. Ферапонтове (-о) - правило остается то же, что и для полных слов? Без слова "село" и сокращенного "с." названия склоняются так же? Уже обращалась с этим вопросом, но ответа не было.
Лучший ответ:
Географическое название, употребленное с родовыми наименованиями город, село, деревня, хутор, река и др., выступающее в функции приложения, согласуется с определяемым словом, то есть склоняется, если топоним русского, славянского происхождения или представляет собой давно заимствованное и освоенное наименование.
Географические названия в сочетании с родовым словом обычно не склоняются, когда род обобщающего нарицательного слова и топонима не совпадают.
Кроме того, обнаруживают тенденцию к несклоняемости приложения-топонимы среднего рода, оканчивающиеся на -е, -о (с родовым словом): между селами Молодечно и Дорожно.
Топонимы славянского происхождения, оканчивающиеся на -ово, -ево, -ино, -ыно, не склоняются в сочетании с родовым словом. Подробнее см. в "Письмовнике".
Таким образом, верно: в городе Полярном, в городе Кириллове, в городе Бабаево, в селе Ферапонтово, в селе Хвалевском, в селе Спасское-Куркино.
Если родовое слово сокращено до г. или с., правила те же, что и со словами город и село.