Can a transaction have more than one recipient? I am quite new to Bitcoin. I have a doubt.

Let's say I, person A, have 1 bitcoin. I want to send 0.5 BTC to person B and 0.5 BTC to person C in a single transaction. Is it possible to do so within one single transaction? 

Later on, if Person C sends the same bitcoin to Person B, will it be possible for person B to recognize that the bitcoin which it now received from person B and the one which it already received from person A, originated from the same source?
Yes, this is possible. Although most consumer wallets will probably not do that, they're simply meant to scan one QR code, send some coins to that address and return the remainder to a change address you own yourself.

I'm fairly sure the Bitcoin-qt GUI wallet can create transactions to multiple destinations. Command line certainly can do everything.


  Later on if Person C sends the same Bitcoin to Person B, will it be possible for person B to verify that, the Bitcoin which it now received from Person B and the one which it already received from Person A, were from the same source ?


This is possible, using a block explorer it's easy to manually trace coins.