Родился 27 января 1922 года в деревне Королёво ныне Мантуровского района Костромской области в семье рабочего. Русский. Член ВКП(б)/КПСС с 1942 года. Окончил 7 классов. Работал бухгалтером на заводе в городе Киеве.
В Красной Армии с июня 1941 года. Окончил Новоград-Волынское пехотное училище в 1941 году. В действующей армии с ноября 1941 года. Первое боевое крещение командир пулемётной роты Смирнов получил 5 декабря 1941 года под Москвой. Отличился на завершающем этапе войны, в боях за освобождение Прибалтики.
13 июля 1944 года пулемётная рота гвардии старшего лейтенанта Смирнова первой подошла к берегу реки Неман в районе местечка Неманойце (ныне Нямунайтис, Алитусского района Литвы). В ночь на 14 июля пулемётчики, используя подручные средства, преодолели водную преграду. Переправившись на западный берег, Смирнов организовал на занятом клочке земли оборону. Горстка пулеметчиков всю ночь отбивала контратаки немцев. Решительные действия роты обеспечили успешную переправу всего полка.
После окончания войны служил в Прибалтике и на Дальнем Востоке. С ноября 1951 года капитан К. Г. Смирнов — в запасе.
Жил в посёлке Архиповка Савинского района Ивановской области. В 1980-е годы переехал в в город Екабпилс (Латвия). Умер 17 ноября 1989 года.