问题 填空题

六个未贴标签的试剂瓶中分别装有以下稀溶液①FeSO4、②H2SO4、③BaCl2、④H2O2、⑤Al(NO33、⑥NaOH.

(1)某同学想不用其他试剂,仅通过用试管取少量上述溶液进行两两混合实验而给试剂瓶贴上正确的标签,他能成功吗?______(填“能”或“不能”).

(2)实验中发现,有一组在混合时,随着试剂滴加的顺序不同而出现明显不同的现象,该组是______,有一组在混合时,随着试剂滴加后的时间不同而出现明显不同的现象,该组是______,该组涉及氧化还原应的化学方程式为______.

(3)鉴别后,该同学又用FeSO4做了三个体现Fe2+还原性的实验,每次加入上述两种已鉴别的物质的溶液与其混合.试写出其中两个反应的离子方程式______.

答案

(1)仅通过用试管取少量上述溶液进行两两混合实验,可以鉴别出各物质,依据溶液颜色是浅绿色判断为①FeSO4 ,把①FeSO4溶液分别加入其它溶液中,出现白色沉淀的是③BaCl2出现白色沉淀迅速变化为灰绿色最后变为红褐色沉淀的是⑥NaOH,把、⑥NaOH.加入剩余两种溶液中,生成沉淀,继续加入沉淀消失的是⑤Al(NO33;剩余的是④H2O2;所以可以鉴别出各物质,故答案为:能;

(2)有一组在混合时,随着试剂滴加的顺序不同而出现明显不同的现象,依据物质性质分析判断,应是利用氢氧化铝的生成和溶解的现象,⑤Al(NO33、⑥NaOH.两溶液滴加顺序不同现象不同产物不同,一组在混合时,随着试剂滴加后的时间不同而出现明显不同的现象推断为①FeSO4、⑥NaOH混合后白色沉淀氢氧化亚铁被氧气氧化为红褐色氢氧化铁沉淀的过程;反应的化学方程式为:4Fe(OH)2+O2+2H2O=4Fe(OH)3,故答案为:⑤和⑥;①和⑥;4Fe(OH)2+O2+2H2O=4Fe(OH)3

(3)体现Fe2+还原性的实验需要满足能做氧化剂把亚铁离子氧化,依据物质的性质和化合价的变化分析:①②⑤:①②④:①④⑥:组合都可以实现氧化亚铁离子的反应:离子方程式分别为:3Fe2++4H++NO3-=3Fe3++NO↑+2H2O;2Fe2++2H++H2O2=2Fe3++2H2O;2Fe2++2OH-+H2O2=2Fe(OH)3↓,

故答案为:①②⑤:3Fe2++4H++NO3-=3Fe3++NO↑+2H2O;①②④:2Fe2++2H++H2O2=2Fe3++2H2O(①④⑥:2Fe2++2OH-+H2O2=2Fe(OH)3↓).

单项选择题
填空题

阅读下列说明和C++代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如图18-15所示,其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,比如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。

当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如图18-15中的类MyApplication和类MyDocument,并分别实现Application类和Document类中的某些方法。

已知Application类中的openDocument()方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示。

(1)检查文档是否能够被打开,若不能打开,则给出出错信息并返回。

(2)创建文档对象。

(3)通过文档对象打开文档。

(4)通过文档对象读取文档信息。

(5)将文档对象加入到Application的文档对象集合中。

[C++代码]

#include<iostream>

#include<vector>

using namespace std;

C1ass Document

public:

void save()/*存储文档数据,此处代码省略*/

void open(string docName) /*打开文档,此处代码省略*/

void close() /*关闭文档,此处代码省略*/

virtual void read(String docName)=0;

class Appplication

private:

vector< (1) >docs; /*文档对象集合*/

public:

bool canopenDocument(String docName)

/*判断是否可以打开指定文档,返回真值时表示可以打开返回假时值表示不可打开,此处代码省略*/

void addDocument(Document *aD0cument)

/*将文档对象添加到文档对象集合中*/

docs.push_back( (2) );

virtual Document *doCreateDocument()=0;/*创建一个文档对象*/

void openDocument(string docName)/*打开文档*/

if( (3) )

cout<<"文档无法打开!"<<end1;

return;

(4) adoc= (5)

(6)

(7)

(8)

(5)处填()。