单项选择题

若有定义:
struct node
{ int data;
struct node *next; } ;
已建立如下图所示的链表:

指针 head 指向链表首结点, 以下函数的功能是()。
void fun(struct node * head)
{ struct node * p = head;
while(1)
{ p = p->next;
printf(“%d ”, p->data ) ;
if(!p) break; } }

A.显示单向链表中第一个结点的数据
B.显示单向链表中最后一个结点的数据
C.显示单向链表中的所有数据
D.显示单向链表中除第一个结点外的所有数据