问题 单项选择题

有如下程序: #include<iostream> using namespace std; class TestClass { public: virtual void fun1() { cout<<"fun1TestClass"; } virtual void fun2() { cout<<"fun2TestClass"; } }; class TestClass1:public TestClass { void fun() { cout<<"fun1TestClass1"; } void fun2(int x) { cout<<"fun2TestClass1"; } }; int main() { TestClass obj1,*p; TestClass1 obj2; p=&obj2; p->fun1(); p->fun2(); return 0; } 该程序执行后的输出结果是( )。

A.fun1TestClass1 fun2TestClass

B.fun1TestClass1 fun2TestClass1

C.fun1TestClass fun2TestClass

D.fun1TestClass fun2TestClass1

答案

参考答案:A

解析: TestClass为基类,Testclass1是TestClass的派生类。基类中的fun1和fun2被定义为虚函数,C++规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数,所以派生类中的fun1和tim2也是虚函数。本题从main主函数入手,首先定义了TestClass类型的对象obj1和指针p,然后又定义了TestClass1的对象obi2。指针指向对象obi2,然后调用其成员函数 fun1(),即输出“fun1TcstClass1”。 多态性是在程序运行过程中才动态地确定操作指针指向的对象,“p->fun2();”语句中没有任何参数,并不是调用派生类中的fun2(int x),而是调用其基类中的fun2(),所以输出“fun2TestClass”。

单项选择题 A3型题
填空题

工业上生产金属钛的方法很多。以钛铁矿(主要成分FeTiO3,钛酸亚铁)为主要原料冶炼金属钛,生产的工艺流程图如下,其中钛铁矿与浓硫酸发生反应的化学方程式为:

FeTiO3+2H2SO4=TiOSO4+FeSO4+2H2O

 

回答下列问题:

(1)钛铁矿和浓硫酸反应属于______________________ (选填“氧化还原反应”或“非氧化还原反应”)。

(2)上述生产流程中加入物质A的目的是防止Fe2被氧化,物质A是________,上述制备TiO2的过程中,所得到的副产物和可回收利用的物质分别是__________、___________。

(3)反应TiCl4+2Mg=2MgCl2+Ti在Ar气氛中进行的理由是_______________。

(4)由二氧化钛制取四氯化钛所涉及的反应有:

TiO2 (s)+ 2Cl2 (g) +2C(s) =TiCl4(g) + 2CO(g)    ΔH1 = -72 kJ•mol-1 

TiO2(s) + 2Cl2 (g) =TiCl4(g) + O2 (g)   ΔH2 =+38.8kJ•mol-1

C(s)+CO2(g)=2CO(g)   ΔH3 =+282.8kJ•mol-1

①反应C(s)+CO2(g)=2CO(g)在高温下能够自发进行的原因是______________________。

②反应C(s)+O2(g)=CO2 (g)的ΔH=_______________。

(5)研究发现,可以用石墨作阳极、钛网作阴极、熔融CaF2-CaO作电解质,利用下图所示装置获得金属钙,并以钙为还原剂,还原二氧化钛制备金属钛。①写出阳极所发生反应的电极反应式:________________________________。

②在制备金属钛前后,CaO的总量不变,其原因是(请结合化学用语解释)