Usually not, but as of release 1.3.1, the answer is a little more complicated.
If the player that is playing is in survival or creative mode, the game will randomly pick a X and Z coordinate within a 10x10* area of the spawn location, and spawn them at the highest block on that coordinate (note: if there are no blocks at the location, the player will fall into The Void).
There are a few cases where this does not apply.
In adventure mode, the player always spawns at the specified location, except if the user has a specific spawn point (more on that later). Barring this, they will always spawn on the specific block.
Using a bed will set your spawn location to a "safe" location around the bed, although this will reset to the world spawn area if you destroy it.
/spawnpoint Operator Command
In release 1.4.2, the /spawnpoint command was added to the vanilla game. This command allows operators to set the spawn of a particular user.
Unlike beds, this ignores any safety check, and will spawn players in a block if there happens to be one at the location.
spawnRadius game rule
This is the number of blocks out that a player can randomly spawn at. If this is set to 0, then users will spawn on the same block every time they respawn (unless a user's custom spawn point applies).
* As of Minecraft 1.10. I do not know if it the same in older versions of Minecraft. It appears that at some point multiplayer and singleplayer did have a different spawn radius, according to the wiki.