以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请填空。
#include <stdlib.h>
stuct node
char data; struet node * next; ;
stntct node * CreatList(char * s)
struet node *h,*p,*q;
h = (struct node * ) malloc(sizeof(struct node) );
p=q=h;
while( * s! =’\0’)
p = (struct node *) malloc ( sizeof(struct node) );
p - > data = ( )
q- >next=p;
q=p;
a++;
p- > next =’\0’;
return h;
main( )
char str[ ]= "link list";
struet node * head;
head = CreatList(str);
A.*s
B.s
C.*s++
D.(*s)++
参考答案:A
解析: 本题要求建立一个stmct node类型的数据链表,函数CreatList将字符串"link list"的首地址传给指针变量s,可以推断建立的链表一定与"link list",有关,由CreatList(char *s)函数中所定义的变量及其他语句可知,h,p,q用于建立的链表,h表示头指针,p用于记录开辟的新结点,而q用作将新结点与已建立的链表相连的中间变量,所建立链表各个结点的data依次存放的是”link list",中的各个字符,所以应填空*s。