问题 选择题

下列仪器:①漏斗,②蒸发皿,③托盘天平,④分液漏斗,⑤蒸馏烧瓶.⑥量筒,⑦燃烧匙,常用于物质分离的是(  )

A.①②⑤⑥

B.②③⑤⑥

C.①②④⑤

D.③④⑥⑦

答案

①漏斗可用于过滤,过滤是适用于分离不相溶的固体和液体,故①正确;

②蒸发皿可用于蒸发溶液,蒸发是提纯的一种操作,适用于分离相溶的固体和液体,故②正确;

③天平是用来称量药品质量的仪器,不用于物质分离,故③错误;

④分液漏斗是分离互不相溶的密度不同的液体的仪器,故④正确;

⑤蒸馏烧瓶是用于蒸馏实验,蒸馏是一种分离物质的方法,适用于分离相溶的两种液体,故⑤正确;

⑥量筒是用来量取液体体积的仪器,不用于物质分离,故⑥错误;

⑦燃烧匙是做物质燃烧实验用的仪器,不用于物质分离,故⑦错误;

故选C.

名词解释
问答题

【说明】
以下【C程序】完成从指定数据文件中读入职工的工号和他完成产品个数的数据信息,对同一职工多次完成的产品个数进行累计,最后按如表5-11所示的格式输出职工完成产品数量的名次(ORDER),该名次是按每位职工完成的产品数量(QUANTITY)排序,之后是同一名次的职工人数(COUNT)和他们的职工号(NUMBER,同一名次的职工号以从小到大的顺序输出)。
表5-11 职工完成产品数量名次输出格式表

ORDERQUANTITYCOUNTNUMBER
 1 398 3 10 20 21
 4 256 2 3 5
 6 192 1 9
 7 167 2 11 14
 … … … …
以下【C程序】采用链表结构存储有关信息,链表中的每个表元对应一位职工。在数据输入的同时,形成一个有序链表(按完成的产品数量和工号排序)。当一个职工有新的数据输入,在累计他的完成数量时会改变原来链表的有序性,为此应对链表进行删除、查找和插入等操作。
【C程序】
#include<stdio. h>
typedef struct ele{
int no, q;
struct ele * next;
}elem;
main(int argc, char ** argv){
FILE *fp; elem *h, *u, *proc();
if(argc==2 &&(fp=fopen(argv[1], "r"))!=NULL){
h=proc(fp);
fclose(fp);
output(h);
while(h I=NULL){
u=h→*next; free(h); h=u;
}
}
}
elem * proc(FILE *fp){
int n, m; elem *u, *v, *p, *base;
base=NULL;
fscanf(fp, "%d’, &m);
while(!feof(fp)){
fscanf(fp, ’%d’, &m);
for(v=base; v!=NULL && v->no !=n; u=v, v=v->next);
if( (1) )
if( (2) )
base=v->next;
else
u->next=v-next;
v->q+=m;
else
v=(elem *)malloc(Sizeof)elem));
v->no=n; v->q=m; p=base;
while(p !=NULL)
if( (3) )break;
else {
u=p; p=p->next;
}
if( (4) )
base=v;
else
u->next=v;
(5) ;
Fscanf(fp, "%d", &n);
}
return base;
}
Output(elem *head){
int count, order; elem *u, *v;
printf("ORDER QUANTITY COUNT NUMBER\n");
u=head; order=1;
while(u !=NULL){
for(count=1, v=u->next; (6) ;count++, v=v->next);
printf("%4d%9d%6d", order, u->q, count);
order+=count;
for(; (7) ;printf("%4d", u->no), u=u->next);
printf("\n");
}
}