以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下画线处号码对应的一组选项中选择正确的选项。
#include <stdio.h>
struct node
char data; struct node *next; ;
(48) CreatList(char *s)
struct 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= (49) ;
q->next=p;
q= (50) ;
s++;
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
解析: 根据题目中的说明,建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,因此,在该处应该把s数组的内容传给指针p所指的data,填入的应该是*s,而不是s,因为此处是要取出s数组的值。