B103

01-程序填空题 田少松, 软件154 340浏览

所属年份:2011.9;

给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include  <stdio.h>
typedef  struct  list
{  char  data;
   struct list  *next;
} Q;
void fun( Q *pa, Q *pb, Q *pc)
{  Q  *p;
/**********found**********/
   pa->next=___1___;
   pb->next=pc;
   p=pa;
   while( p )
   {
/**********found**********/
      printf("  %c",____2_____);
/**********found**********/
      p=____3____;
   }
   printf("\n");
}

main()
{  Q  a, b, c;
   a.data='E';  b.data='F';  c.data='G';  c.next=NULL;
   fun( &a, &b, &c );
}

【参考答案】

(1)pb   
(2)p->data    
(3)p->next

【解题思路】
填空1:将三个结点连接起来,即将pa的指针域指向pb,pb的指针域指向pc。
填空2:输出链表结点中的数据,表示为p->data。
填空3:指针后移,指向下一个结点,即p=p->next。