node *create(node *p) //p接收已有链表的表头 { node *head=p,*pn,*pt; if(p!=0) { pt=head; while(pt->next!=0) 1 ; //让pt指向已有链表尾结点 } char name[9]; cin>>name; while(strcmp( strupr (name),"END")!=0) //name输入"END"或"end"结束创建 { pn=new node; strcpy(pn->name,name); cin>>pn->math; if(head==0) //原链表为空,新结点作为首结点 { 2 ; pt=pn; //pt指向尾结点 } else //原链表非空,新结点添加到尾部 { pt->next=pn; 3 ; } cin>>name; } 4 ; //设置尾结点 return head; } 上述函数的作用是:向一个无序链表的尾部连续增加新结点,以输入姓名为“END”或“end”结束。代码中标注1、2、3和4处的语句应选择下列哪个选项?