Depends of the character, but most of the times they end up with a full team, by the time they reach the last gym. And usually the starter don't reach the final stage before reaching the 5th/6th gym. In the noble story I did like that:
Start: Snivy, one stolen Egg
1st Gym: Snivy, Mareep, Egg
2nd Gym: Snivy, Mareep, Growlithe
3rd Gym: Servine, Flaaffy, Growlithe, Buizel
4th Gym: Servine, Ampharos, Growlithe, Floatzel, Swablu
5th Gym: Serperior, Ampharos, Arcanine, Floatzel, Altaria
6th Gym: Ser., Amp., Arc., Float., Alt., Metang
7th Gym: same as 6th Gym
8th Gym: Ser., Amp., Arc., Float., Alt., Metagross
I gave to him a full team, but not immediately and the Pokemon evolved steadily and according to their evolutions levels (for example, Mareep evolves a bit earlier in the story (Lv.15) than Snivy (Lv.17)).