smarty-pants
noun /ˈsmɑːti pænts/
  /ˈsmɑːrti pænts/
(British English also smart alec, North American English smart aleck)
 (also British English, offensive smart-arse, North American English smart-ass)
 (informal, disapproving)- a person who thinks they are very clever and likes to show people this in an annoying way