以下程序把三个NODEIYPE型的变量链接成—个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。
include<stdio.h>
struct node
{ int data;struct node*next;);
typedef struct node NODETYPE;
main()
{ NODETYPEa,b,c,*h,*p;
a.data=10;b.data=20;c.data=30;h=&a;
anext=&b;b.next=&c;c,next='\0';
p=h;
while(p){printf("%d,",p->data):【 】;}
printf("\n");
}
第1题:
A指向链表的第一个结点的指针,称为头指针
B单链表的每一个结点都被一个指针所指
C任何结点只能通过指向它的指针才能引用
D尾指针变量具标识单链表的作用,故常用尾指针变量来命名单链表
第2题:
给定程序modil.c的主函数中,将a.b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun( )的作用是:累加链表结点数据域中的数据作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
第3题:
以下说法中不正确的是()。
A双向循环链表中每个结点需要包含两个指针域
B已知单向链表中任一结点的指针就能访问到链表中每个结点
C顺序存储的线性链表是可以随机访问的
D单向循环链表中尾结点的指针域中存放的是头指针
第4题:
以下程序中函数fun的功能是:构成—个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。
include<stdio.h>
typedef struct node /*链表结点结构*/
{ char sub[3];
struct node *next;
}Node;
Node fun(char s) /* 建立链表*/
{ ...... }
void disp(Node *h)
{ Node *p;
p=h->next;
while([ ])
{printf("%s\n",p->sub);p=[ ];}
}
main()
{ Node *hd;
hd=fun(); disp(hd);printf("\n");
}
第5题:
设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。
略