第一题:请补充函数fun,该函数的功能是建立一个带头结点的单向链表并输出到文件“out53.dat”和屏幕上,各结点的值为对应的下标链表的结点数和输出的文件名作为参数传入。
请不要改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#include
#include
typedef struct ss
{
int data;
struct ss *next;
}NODE;
void fun(int n,char *filename)
{
NODE *h, *p, *s ;
FILE *pf;
int i;
h=p=(NODE *)malloc(sizeof(NODE));
h->data=0;
for(i=1;i
{
s=(NODE *)malloc(sizeof(NODE));
s->data=___1___;
___2___;
p=___3___;
}
p->next=NULL;
if((pf=fopen(filename,"w"))==NULL)
{
printf("Can not open out53.dat!");
exit(0);
}
p=h;
fprintf(pf,"\n***THE LIST*** \n");
printf("\n***THE LIST*** \n");
while(p)
{
fprintf(pf,"%3d",p->data);
printf("%3d",p->data);
if(p->next!=NULL)
{
fprintf(pf,"->");
printf("->");
}
p=p->next;
}
fprintf(pf,"\n");
printf("\n");
fclose(pf);
p=h;
while(p)
{
s=p;
p=p->next;
free(s);
}
}
main()
{
char *filename="out53.dat";
int n;
printf("\nInput n:");
scanf("%d",&n);
fun(n,filename);
}
参考答案:
第一题(填空题):第一空: i
第二空: p→next=s
第三空:p→next