问题 计算题

(10分)将一定质量的Al、Fe混合物加入到足量的盐酸中,充分反应后得到标准状况下的氢气8.96L;如果将等质量的该混合物加入到足量的NaOH溶液中,充分反应后得到标准状况下的氢气6.72L。

⑴.写出与碱反应涉及的化学方程式:_____________________________

⑵.混合物中Al和Fe的质量分别为________和__________

⑶.当混合物与盐酸反应时,转移电子数为_______mol;与NaOH溶液反应时转移电子数为_______mol。

答案

(10分)

⑴.2Al+2NaOH+2H2O=2NaAlO2+3H2↑ 

⑵.5.4g    5.6g 

⑶.0.8mol  0.6mol                       (每空2分)

填空题

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

[说明]

栈(Stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(Stack Top),而另一端称为栈底(Stack Bottom)。栈的基本操作包括:创建栈(NewStack)、判断栈是否为空(IsEmpty)、判断栈是否已满(IsFull)、获取栈顶数据(Top)、压栈/入栈(Push)、弹栈/出栈(Pop)。

当设计栈的存储结构时,可以采取多种方式。其中,采用链式存储结构实现的栈中各数据项不必连续存储(如图21-9所示)。

以下C代码采用链式存储结构实现一个整数栈操作。

[C代码]

typedef struct List

int data; //栈数据

struct List* next; //上次入栈的数据地址

List;

typedef struct Stack

List* pTop; //当前栈顶指针

Stack;

Stack* NewStack()return(Stack*)calloc(1,sizeof(Stack));

int IsEmpty(Stack* S)//判断栈S是否为空栈

if( (1) )return 1;

return 0;

int Top(Stack* S)//获取栈顶数据。若栈为空,则返回机器可表示的最小整数

if(IsEmpty(S))return INT_MIN;

return (2)

void Push(Stack* S,int theData)//将数据theData压栈

List* newNode;

newNode=(List*)calloc(1,sizeof(List));

newNode->data=theData;

newNode->next=S->pTop;

S->pTop= (3)

void Pop(Stack* S) (//弹栈

List* lastTop;

if(IsEmpty(S))return;

lastTop=S->pTop;

S->pTop= (4)

free(lastTop);

#define MD(a)a<<2

int main()

int i;

Stack* myStack;

myStack=NewStack();

Push(myStack,MD(1));

Push(myStack,MD(2));

Pop(myStack);

Push(myStack,MD(3)+1);

while(!IsEmpty(myStack))

printf("%d",Top(myStack));

Pop(myStack);

return 0;

以上程序运行时的输出结果为: (5)

(3)处填()。

单项选择题