下列给定程序中,函数fun的功能是:统计带头结点的单向链表中结点的个数,并存放在形参n所指的存储单元中。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不

admin2020-11-27  31

问题 下列给定程序中,函数fun的功能是:统计带头结点的单向链表中结点的个数,并存放在形参n所指的存储单元中。  
    请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。  
    注意:部分源程序给出如下。  
    不得增行或删行,也不得更改程序的结构!   
    试题程序:
    #include   
    #include
    #define N 8   
typedef struct list
{  int data;
    struct list  *next;  
} SUIST;
SLIST*creatlist(int*a);
void outlist(SLIST*);
void fun(SLIST*h,int*n)
{  SLIST*p;
/**********found***********/
    【1】=0;
    p=h->next;
    while(p)
    {    (*n)++;
/**********found***********/
  p=p->【2】;
    }
  }
    main()
    {  SLIST*head;
    int a[N]={12,87,45,32,91,16,20,48},num;
    head=creatlist(a);
    outlist(head);   
/**********found***********/
    fun(【3】,&num);
    prinff(“\nnmumber=%d\n”,num);
    }
    SLIST*creatlist(int a[])
    {  SLIST*h,*p,*q;  inti;
   h=p=(sLIST*)malloc(sizeof(SLIST));
    for(i=0;i    {    q=(SLIST*)malloc(sizeof(SLIST));
        q->data=a;p->next=q;
    p=q;
    }
    p->next=0;
    return h;
    }
    void  outlist(SLIST*h)
    {SLIST *p;
    p=h->next;
    if(p==NULL)
    printf("The list is NULL\n");
    else
    {  prinff("\nHead");
    do
      {   prinff("一>%d",p->data);
    pfp->next;}
    while(p!=NULL);
    pdnff("->End\n");
        }
    }

选项

答案(1)*n (2)next (3)head

解析 填空1:n所指的存储单元存放结点的个数,对其赋初值为0。
  填空2:while循环用于遍历链表,循环一次,指针指向链表的下一个结点。
  填空3:调用函数的实际参数与形参一致,即fun(head,&num);。
转载请注明原文地址:https://kaotiyun.com/show/XZ3p777K
0

最新回复(0)