(a). "12345"
(b). "339"
(c). "3345"
(d). "1239"
(e). illegal addition
Here's what the rules for python look like in psuedo code.
op+(a:number, a':number) => number
op+(a:string, a':string) => string
If I had designed the language, I'd have made the concat operator different than the addition operator. But this is not an uncommon language design choice. Fortunately Python does not allow you to add|concat a number to a string, so you can catch the problem (try that in javascript or vbscript).
Anyhow, as usual you can't see the forest for the trees. It's a problem that I had with the language for, oh, about 30 seconds.