You can insert the results returned from the select directly into the insert:
DELIMITER //
CREATE PROCEDURE updateTableC()
BEGIN
INSERT INTO c (gender, purpose_abroad_as_per_recorded_travel, country_name)
SELECT a.gender, b.purpose_abroad_as_per_recorded_travel, b.country_name
FROM b LEFT JOIN a
ON b.person_id=a.id;
END//
DELIMITER ;
For more information on MySQL stored procedures this is a good start: Getting Started with MySQL Stored Procedures.