Прежде всего, эти слова - славянская тема, хоть изначально и заимствованы извне. "Царь" идёт выше "короля", т.к. соответствует "императору".
Надеюсь, на примере с немецким будет наглядно.
"Король" по-немецки - König, "император" - Kaiser, "кайзер". Первое слово произошло из "конунг", как называли вождей у древних германцев (у англичан, соответственно, перешло в "кинг"). Второе - от имени Цезарь, что позже стало одним из синонимов слова "император".
Слово "король", как упомянуто в ответе Алекса, действительно произошло от имени Карл - Карла Великого. Славяне жили по окраинам его державы, и их активно, что называется, щемили. Они тогда были весьма дремучими, и в тонкостях титулов не разбирались. В то, что король Карл решил понтануться, и стать ещё и императором, возродив тем самым Западную Римскую империю (а Восточная - Византия, никуда не делась), славяне не особо вникали. Зато у них отложился этот могучий мужчина, правящий таковым же государством, в памяти, и его имя они превратили в титул, который соответствует тому, что в германских языках "кинг", "кёниг", "конинг", и т.д, а в романских "рекс", "руа", "рей", "реге" и т.п.
При этом, слово "цезарь" также проникло в славянские языки, трансформировавшись в "царь", "цар". По мере роста образования это слово стало употребляться в значении "император" - оно ассоциировалось с правителями Византии, хотя, в просторечии (на Руси), и в качестве обозначении монарха вообще. С путаницей попытался разобраться Иоанн IV, он же Грозный. Четвёртый он, потому что так сложилось, что нумерация шла ещё от Великих князей Московских. Иван IV уже совершенно чётко видел различия между "королём" и "царём", и второй титул был для него выше. О том, что "царь"="император", знал даже Лжедмитрий I (Г.Отрепьев), и подписывался как "in perator" (с ошибкой, в виду очевидно слабой образованности).
Добираемся до Петра I, он же Великий. В общем-то, введя титул "император", он создал тавтологию, потому что теперь стали употребляться два титула, по сути дела, означающие одно и то же. Особенно это видно, если взять то, как именовали сына монарха: "цесаревич" ("цезаревич", грубо говоря) - по-моему, невооружённым глазом видно родство со словом "царевич". Но сделал он это для дополнительной легитимации в глазах остальных европейских стран, т.к. слово "царь" они не слишком признавали.
У нас есть ещё подобные примеры. "Президент" дословно переводится как "первосидящий". Но точно также расшифровывается "председатель".
Что касается комментария к ответу Алекса:
Карл I Великий был во-первых королём (разумеется, слово "король"/"краль" он не использовал), а позже, присоединив территории, повысил статус державы, и стал ещё и императором - одно другому не мешает. Т.е, используя чисто славянские слова, он был и королём и царём.