3, one on each bank before cat and 1 after cat. v8s have 4
My '99 4dr XLT w/ SOHC V6 has 4 O2 sensors. I also had a '97 Sport SOHC that had 4. There is 1 on each bank BEFORE the cat (Upstream), and 1 AFTER each cat (Downstream). Its been a while since I changed them, but if I recall correctly, one of them is very hard to see, if you don't already know where it is. If you don't see it, follow each pipe from the exhaust manifold-back, until you find them.
Also, it is recommended to replace O2 sensors in pairs. If one is bad, there is a good chance the other one isn't too far behind.
Also, be aware, an O2 sensor code doesn't automatically mean that the sensor is bad. This is the problem with all these cheap code readers that are now available to every schmuck who thinks he knows cars. Of course, the knuckleheads at the parts stores trying to sell everybody O2 sensors doesn't help. The O2 "code" just means that the ecm isn't seeing the data from the sensor, that it expects to see. Yes, it could be a bad sensor, but it could also be a broken/cut wire somewhere between a sensor and the ecm. This is where actual live sensor data, as opposed to just a code reader, can be useful. There could also be an entirely unrelated cause. For instance, the sensor can only report what it "sees" in the exhaust stream. If there is something else wrong with motor and/or another sensor that is causing a lean or rich condition outside of normal parameters, then the sensor may appear to be bad, as the ecm will through an O2 code for excessive lean or rich, as the case may be, when the cause had nothing to do with the O2. It may have been caused by a misfire, for example (which would show lean,not rich-fyi).
It may very well be a bad O2, I'm just saying that it also may not be. A code reader is not a magical car doctor. It usually only reveals the symptoms. A competent mechanic then has to find the "disease", and the "cure".