I am going to Guangzhou to attend Canton Fair first, then to Hong Kong (or Macao) and back to mainland China again. Will single entry visa suffice?

No! You need to apply for a double entry visa in this case. Because, Hong Kong and Macao are Special Administrative Region. Once you go there from mainland China, you are considered to exit China already. Therefore you need another visa to go back in. You may apply for re-entry visa to the Visa Section for Aliens of the Commissioner mentioned in Item 2 or Division of Aliens and Exit-Entry Administration of Guangzhou Municipal Public Security Bureau (Add: No.155 Jie Fang Nan Road, Guangzhou.)