It varies block by block, but they're generally 10-100 K. You can see the size of any single block in blockexplorer:http://blockexplorer.com/block/000000000000017d3c9503f4ddfedd474d2ecab4d6c0ce9455e779ea74543d1c
Currently, there's a hard-coded block size limit of about 2 MB, but it's a soft limit that will likely be removed in the future.
Transactions are roughly proportional in size to the number of inputs and outputs they string together. The generic transaction (me sending a bit to you and the rest back to myself) is about 250 bytes long, but you can have much larger transactions in general.
A priori, apart from the soft limit on block size that is currently active, there is no technical limit on the number of transactions that can be strung together into a single block. Practical limits are a more complicated issue, discussed at length here:https://en.bitcoin.it/wiki/Scalabilityhttp://forum.bitcoin.org/?topic=286.0