问题 填空题

工业上用CO生产燃料甲醇。一定条件下发生反应:CO(g)+2H2(g)CH3OH(g)。图1表示反应中能量的变化;图2表示一定温度下,在体积为2L的密闭容器中加入4mol H2和一定量的CO后,CO和CH3OH(g)的浓度随时间变化。

(1)在“图1”中,曲线_______(填:a或b)表示使用了催化剂;该反应属于_______(填:吸热、放热)反应。

(2)下列说法正确的是______________      

A.起始充入的CO为2mol

B.增加CO浓度,CO的转化率增大

C.容器中压强恒定时,反应已达平衡状态  

D.保持温度和密闭容器容积不变,再充入1molCO和2molH2,再次达到平衡时 n(CH3OH)/n(CO)会减小

(3)从反应开始到建成平衡, v(H2)=________;已知:在一定温度下,当一个可逆反应达到化学平衡时,生成物浓度幂之积与反应物浓度幂之积的比值是一个常数,这个常数就是该反应的化学平衡常数,那么在该温度下CO(g)+2H2(g)CH3OH(g)的化学平衡常数为_______________ 。若保持其它条件不变,将反应体系升温,则该反应化学平衡常数____(填“增大”、“减小”或“不变”)。

(4)请在“图3”中画出平衡时甲醇百分含量(纵坐标)随温度(横坐标)变化的曲线,要求画压强不同的2条曲线(在曲线上标出P1、P2,且P1<P2)。

(5)有一类甲醇质子交换膜燃料电池,需将甲醇蒸气转化为氢气,两种反应原理是

A、CH3OH(g)+H2O(g)=CO2(g)+3H2(g)        ΔH=+49.0kJ/mol

B、CH3OH(g)+3/2O2(g)=CO2(g)+2H2O(g)     ΔH=-192.9kJ/mol

又知H2O(l)= H2O(g)  ΔH=+44 kJ/mol,

请写出32g的CH3OH(g)完全燃烧生成液态水的热化学方程式____________________。

答案

(1)b;放热   

(2)AC

(3)0.15mol/L-1·min-1;12 L2·mol-2;减小

(4)

(5)CH3OH(g)+3/2O2(g)=CO2(g)+2H2O ΔH=-280.9kJ/mol   

问答题

[说明]
在某些系统中,存在非常复杂的对象,可以采用循序渐进的方式进行组合,将小对象组合成复杂的大对象。
以下实例展示了Builder(生成器)模式。该实例用来建立“文件”,文件内容包括:一个标题、一串字符以及一些有项目符号的项目。Builder类规定组成文件的方法,Director类利用这个方法产生一份具体的文件。图5-1显示了各个类间的关系。
[图5-1]


以下是C++语言实现,能够正确编译通过。
[C++代码]
class Builder
public:
virtual void makeTitle(string title) = 0;
virtual void makestring(string str) = 0;
virtual void makeItems( (1) items) = 0;
virtual string getResult() = 0;
;
class Director
private:
(2) builder;
public:
Director(Builder *builder)
this->builder = builder;

string construct()
vectoritems;
items.push_back("早安"); items.push_back("午安");
builder->makeTitle("Greeting");
builder->makeString("从早上到白天结束");
builder->makeItems(items);
builder->makeString("到了晚上");
(3) ;//清空items向量
items.push_back("晚安"); items.push_back("好梦");
builder->makeItems(items);
return builder->getResult();

;
class TextBuilder : public (4)
private:
string buffer;
public:
TextBuilder()
buffer = " ";

void makeTitle(string title)
buffer += "=======================================\n";
buffer += "『" + title + "』\n";
buffer += "\n";

void makeString(string str)
buffer += "■" + str + "\n";
buffer += "\n";

void makeItems(vectoritems)
vector::iterator it;
for(it = items.begin(); it != items.end(); it++)
buffer += "." + *it + "\n";

buffer += "\n";

string getResult()
buffer += "========================\n";
return buffer;

;
int main()

Director *director = new Director(new TextBuilder());
string result = (string)director-) (5) ;
cout< return 0;

多项选择题