问题 问答题

根据下列装置,结合所学化学知识,回答下列问题

(1)写出图1中标号为①的仪器名称        

(2)实验室用高锰酸钾制取氧气的发生装置选用   ,化学方程式为              收集O2的装置最好选用   (填字母编号),用该装置验满O2的方法是              

(3)用块状石灰石和稀盐酸反应,观察到气泡逸出不明显后,测得B中锥形瓶内残留液,逐渐滴入碳酸钠溶液,并用pH计连续监测测得曲线如图2,[pH值为纵坐标,时间(秒)为横坐标],请写出曲线中bc段的化学方程式           ,cd上升的原因是                      

答案

(1)长颈漏斗

(2)A;2KMnO4K2MnO4+MnO2+O2↑;E;将带火星的木条平放在集气瓶口,木条复燃,证明氧气满了

(3)Na2CO3+CaCl2=CaCO3↓+2NaCl;碳酸钠溶液显碱性

题目分析:(1)长颈漏斗方便加液体药品,故答案为:长颈漏斗

(2)如果用高锰酸钾制氧气就需要加热,氧气的密度比空气的密度大,不易溶于水,因此能用向上排空气法和排水法收集.向上排空气法收集氧气的验满方法是:将带火星的木条平放在集气瓶口,木条复燃,证明氧气满了.故答案为:A;2KMnO4K2MnO4+MnO2+O2↑;E;将带火星的木条平放在集气瓶口,木条复燃,证明氧气满了;

(3)B中锥形瓶内残留液,逐渐滴入碳酸钠溶液,根据图象可知,残留液体是盐酸和氯化钙的混合物,ab段是碳酸钠和盐酸反应,bc段是碳酸钠和氯化钙反应生成碳酸钙白色沉淀和氯化钠;cd上升的原因是:碳酸钠溶液显碱性,故答案为:Na2CO3+CaCl2=CaCO3↓+2NaCl;碳酸钠溶液显碱性

点评:本考点主要考查了仪器的名称、气体的制取装置和收集装置的选择,同时也考查了化学方程式的书写和溶液中溶质的判断等,综合性比较强.气体的制取装置的选择与反应物的状态和反应的条件有关;气体的收集装置的选择与气体的密度和溶解性有关.本考点是中考的重要考点之一,主要出现在实验题中.

填空题

阅读下列说明和C++代码。

[说明]

某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图5-1所示。

采用状态(State)模式来实现该纸巾售卖机,得到如图5-2所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图5-1中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。

[C++代码]

#include <iostream>

using namespace std;

//以下为类的定义部分

class TissueMachine; //类的提前引用

class State

public:

virtual void insertQuarter()=0; //投币

virtual void ejectQuarter()=0; //退币

virtual void turnCrank()=0; //按下“出纸巾”按钮

virtual void dispense()=0; //出纸巾

;

/*类SoldOutState、NoQuarterState、HasQuarterState、SoldState的定义省略,

每个类中均定义了私有数据成员TissueMachine* tissueMachine;*/

class TissueMachine

private:

(1) *soldOutState, *noQuarterState, *hasQuarterState,*soldState,

*state;

int count; //纸巾数

public:

TissueMachine (int numbers);

void setState (State* state);

State* getHasQuarterState();

State* getNoQuarterState()j

State* getSoldState();

State* getSoldOutState();

int getCount()j

//其余代码省略

;

//以下为类的实现部分

void NoQuarterState ::insertQuarter()

tissueMachine->setState( (2) );

void HasQuarterState ::ejectQuarter()

tissueMachine->setState( (3) );

void SoldState ::dispense()

if (tissueMachine->getCount()>0)

tissueMachine->setState( (4) );

else

tissueMachine->setState( (5) );

//其余代码省略

(1)处应填()。

问答题