One and not. Magikarp is not the weakest pokémon. Going by overall stats, there are several pokémon who are weaker:
Wishiwashi (solo form) (175)
Sunkern (180)
Azurrill (190)
Kricketot (194)
Caterpie (195)
Weedle (195)
Wurmple (195)
Ralts (198)
Now, taking into account movesets, we can rule out a few of those pokémon. Wishiwashi has a full moveset, plus it can turn into its School Form starting at level 20, which is a beast. Sunkern and Ralts also have a full moveset, and they can learn TMs. That leaves us with the three worm-based pokémon and Kricketot.
Wurmple and Weedle have one advantage over Caterpie: dual typing. They are part poison and can learn Poison Sting. Although not as powerful in raw terms as Caterpie's Tackle, it has the chance of inflicting Poison status. Moreover, Wurmple learns Bug Bite at level 16, so it has three moves, compared with Caterpies two. So Weedle and, especially, Wurmple are (potentially) more useful than Caterpie. Kricketot learns Struggle Bug and Bug Bite early on, and those two moves have STAB. Finally, Magikarp learns Tackle at 15 and Flail at 30. So Magikarp > Caterpie. Caterpie is the worst.
This is, of course, based on the idea that you don't evolve these pokémon. Otherwise, saying that Magikarp is the worst doesn't hold water (heh) either way, since you would be evolving it to Gyarados in the long run.
TL;DR: Caterpie fucking sucks.