So a Pokemon's CP is calculated through a formula involving the Pokemon's stats, IVs and its level (which is equal to your trainer level). You can read through the whole process here.
Because of these variables, each Pokemon species has an individual CP limit. If you search around, there are multiple other lists that have calculated and showed these values; most lists show roughly the same values although some anomalies exist between lists. I recommend this list because it shows more data (i.e. CP limit per trainer level) and the Lv40 values are cross-referenced by this list. Some lists, however, are blatantly incorrect due to a recent update of the game on 21 November, 2016 that altered the CP formula and thus the max CP limit for some Pokemon.
Hope I helped. :)
Sources: I linked to them all above