问题 计算题

为了测定某有机物A的结构,做如下实验:①将2.3 g该有机物完全燃烧,生成0.1 molCO2和27 g水;②用质谱仪测得其相对分子质量为46;③核磁共振氧谱图显示共有3个吸收峰,且3个峰的面积之比是1:2:3。 试回答下列问题:

(1)有机物A的实验式是___________。

(2)能否根据A的实验式确定A的分子式?_______________ (填“能”或“不能”);若能,则A的分子式是_________________;若不能,则上空不填。

答案

(1)C2H6O

(2) 能;C2H6O

填空题

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

[说明]

一般的树结构常采用孩子一兄弟表示法表示,即用二叉链表作为树的存储结构,链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。例如,如图21-6(a)所示的树的孩子一兄弟表示如图21-6(b)所示。

函数LevelTraverse0的功能是:对给定树进行层序遍历。例如,对如图21-6(a)所示的树进行层序遍历时,结点的访问次序为:D B A E F P C。

对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表21-1所示。

Bool、Status类型定义如下:

typedef enum(FALSE=0,TRUE=1)Bool;

typedef enum(OVERFLOW=-2,UNDERFLOW=-1,ERROR=0,OK=1)Status;树 的二叉链表结点定义如下:

typedef struct Node

char data;

struct Node *fimstchild,*nextbrother;

Node,*TreeNode;

[本题函数]

Status LeveiTraverse(TreeNode root)

/*层序遍历树,树采用孩子一兄弟表示法,root是树根结点的指针*/

Queue temQ;

TreeNode ptr,brotherptr;

if(!root)

return ERROR;

InitQueue(&tempQ);

(1)

brotherptr=root->nextbrother;

while(brotherptr)

EnQueue(&tempQ,brotherptr);

(2)

/-end-while*/

while( (3) )

(4)

printf("%c\t",ptr->data);

if( (5) )continue;

(6)

brotherptr=ptr->firstchild->nextbrother;

while (brotherptr)

EnQueue(&tempQ,brotherptr);

(7)

/*end-while*/

/*end-while*/

return OK;

/*LevelTraverse*/

(4)处填()。

选择题