阅读下面算法。说明该算法的功能。Typedef char DataType;typedef struct node{DataType data;struct node *next;}ListNode;typedef ListNode *Linklist;Linklist what(Linklist h){/*h是无头结点的单链表的头指针*/{if(h&&h->next){q=h;h=h->next;p=h;while(p->next)p=p->next;p->next=q;q->next=NULL;h=q;}return(h);}
以下程序的输出结果是( )。 main() { printf( "%d\n", fac(5) );} fac(int n) { int s; if(n==1) return 1; else return n*fac(n-1); }