;Р};Рstruct student *creat()Р{ struct student *head=NULL,*tail;Рlong num; int a;Рtail= ① malloc(LEN);РdoР{ scanf("%ld,%d",&num,&a);Рif(num!=0)Р{ if(head==NULL) head=tail;Рelse ② ;Рtail->num=num; tail->score=a;Рtail->next=(struct student *)malloc(LEN);Р}Рelse tail->next=NULL;Р}while(num!=0);Рreturn( ③ );Р}Р答案:① (struct student *) ② tail=tail->next ③ headР注释:①malloc函数的作用是在内存开辟指定字节数的存储空间,并将此存储空间的地址返回赋给尾指针tail,但是此地址为void型,应将其强制转换为所要求的结构指针类型。Р②新开辟的结点的内存地址存于tail所指向的已建立的链表的尾结点的结构成员next,新结点连入链表以后,尾指针tail应指向新的结点。Р【3.27】下面程序的功能是统计文件中的字符的个数。Р#include <stdio.h>Рmain()Р{ long num=0;Р① *fp;Рif((fp=fopen("fname.dat", "r"))==NULL)Р{ printf("Can't open the file! ");Рexit(0);Р}Рwhile( ② ) Р{ fgetc(fp); Рnum++;Р}Рprintf("num=%d\n",num);Рfclose(fp);Р}Р答案:① FILE ② !feof(fp)Р注释:FILE 是文件结构类型名。feof()是测试文件结束标志的函数。