Some CMSes, like WordPress, give themselves away in the source code, but many don’t. The easy way is to log in to the admin side of the CMS, where there is likely to be a mention what CMS it is … unless it’s a ‘home made’ job.
There isn’t any definitive answer to that question. If you are familiar with certain open source CMS’s though there are thinks to look for. A good test is looking at the meta tags or going to the login page. Those normally give things away for open source community projects. One that gives away wordpress is wp- prefix for file paths. One that gives away Drupal is going to /user to see if there is a login screen provided. However, the Drupal one can come up with false positives depending on rerouting on the back-end. Those are the two I know for open source stuff. Steps can be taken to prevent those tests from giving away things but most of time people don’t do it.