问题 选择题

能正确表示下列反应的离子方程式为(  )

A.硫化亚铁溶于稀硝酸中:FeS+2H===Fe2+H2S↑

B.含等物质的量的KHCO3和Ba(OH)2溶液混合:HCO3+Ba2+OH===BaCO3↓+H2O

C.少量CO2通入硅酸钠溶液中:SiO32—+2CO2+2H2O===H2SiO3↓+2HCO3

D.硫化钠水溶液呈碱性:S2+2H2OH2S+2OH

答案

答案:B

题目分析:A、硫化亚铁溶于稀硝酸中时,因硝酸具有强氧化性,可以将亚铁离子氧化为三价,也会将硫化氢氧化,所以产物中不会生成Fe2+和H2S,故A错误。

B、含等物质的量的KHCO3和Ba(OH)2溶液混合,钡离子和碳酸氢根按物质的量之比1:1反应,即HCO3+Ba2++OH-=BaCO3↓+H2O,故B正确。

C、少量CO2通入硅酸钠溶液中:SiO32—+CO2+H2O===H2SiO3↓+CO32-,故C错误。

D、硫化钠中的硫离子是多元弱酸根离子,分步水解,以第一步为主,为:S2-+H2O=HS-↑+OH-,故D错误

点评:本题考查学生离子方程式的书写的正误判断知识,注意物质用量的多少所决定的反应产物的情况,综合性较强,难度较大。

选择题
问答题

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


以下是C语言实现,能够正确编译通过。
[C代码]
typedef void( (1) )(char *title);
typedef void(*fun2)(char items[] [10], int N);
typedef char* (*fun3)();
char buffer[500];
struct Builder//构造器
fun1 makeTitle;
(2) makeString;
fun2 makeItems;
fun3 getResult;
;
struct Director
struct Builder builder;
;
char* construct( (3) director)//构造文件

char items[2][10] = "早安", "午安";
director->builder.makeTitle("Greeting");
director->builder.makeString("从早上到白天结束");
director->builder.makeItems(items, 2);
director->builder.makeString("到了晚上");
strcpy(items[0], "晚安");
strcpy(items[1], "好梦");
director->builder.makeItems(items, 2);
return director->builder.getResult();

void TXTmakeTitle(char* title)

strcat(buffer, "『");
Strcat(buffer, title);
strcat(buffer, "』\n\n");

void TXTmakeString(char* str)

strcat(buffer, "■");
Strcat(buffer, str);
strcat(buffer, "\n\n");

void TXTmakeItems(char items[] [10], int N)//将items加入文件中

for(int i = 0, i < N; i++)
strcat(buffer, "·");
strcat(buffer, (4) );
strcat(buffer, "\n");

strcat(buffer, "\n");

char* TXTgetResult()

return buffer;

void main()

Director director;
(5) = ’\0’;//清空缓冲区,使目前缓冲区中的内容不影响新生成的文件
director.builder.makeTitle = TXTmakeTitle;
director.builder.makeString = TXTmakeTitle;
director.builder.makeItems = TXTmakeItems;
director.builder.getResult = TXTgetResult;
char* result = construct(&director);
printf("%s\n", result);