甲和丁能反应生成水,乙和丁能反应生成二氧化碳,则丁可能是氧气,丙能和丁反应生成二氧化碳和水,根据质量守恒定律,则丙中含有碳元素和氢元素,A、氢气只含有氢元素,故A错误;B、甲烷含有碳元素和氢元素,故B正确;C、一氧化碳含有碳元素但是不含有氢元素,故C错误;D、乙醇含有碳元素和氢元素怒,故D正确;故选BD.