9-1课后练习参考答案 联系客服

发布时间 : 星期六 文章9-1课后练习参考答案更新完毕开始阅读f92496460029bd64793e2cde

实验8-1链表初步

【实验目的】

1. 掌握链表的各种形式 2. 掌握节点的动态创建函数

3. 掌握头插法和尾插法创建简单单链表

【课后练习】

一、 选择题

1. 有以下结构体类型定义及变量声明,且如下图所示,指针p指向变量a,指针q指向

变量b,则不能把结点b连接到结点a之后的语句是 。 struct {

char data;

struct node * next; }a, b, *p = &a, *q = &b;

A.a.next = q; B.p.next = &b; C.p->next = &b; D.(*p).next = q;

2. 若以建立下图中的链表结构,指针p、q分别指向图中所示结点,则不能将q所指的结

点插入到链表末尾的一组语句是: 。

A. q->next = NULL; p = p->next; p->next = q; B. p = p->next; q->next = p->next; p->next = q;

C. p = p->next; q->next = p; p->next = q; D. p = (*p).next; (*q).next = (*p).next; (*p).next = q;

二、填空题

1. 链表有一个“头指针”变量,专门用来存放 第一个结点的地址 。

2. 常常用结构体变量作为链表中的结点,单链表中,每个结点都包括两部分:一个是 数据域 ,用来存放 用户数据信息 ,一个是 指针域 , 用来存放 下一个结点的地址 。

3. 单链表中,最后一个节点的指针域常常设置为 NULL ,表示链表到此结束。

4. 为建立如图所示的结点存储结构,请将定义补充完整

struct node { char data;//数据域 struct node * next ;//指针域 }v1;

5. 若要利用下面的程序片断使指针变量p指向一个存储整型数据的变量空间,则应填入

什么内容?

int *p;

p= (int *) malloc (sizeof(int));

三、 以下程序采用栈式创建(所谓的“静态创建”)一个有2个学生数据的链表,

并输出各结点中的数据,请填空完成下列程序设计。

L20: &b L21: NULL

L26: p->num, p->score L27: p->link

四、 以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指

针。请填空完成程序设计

while(p!=NULL) { c++; p=p->next; }

五、 已知head指向一个不带头结点的单链表,连表中的每个结点包含数据域和指

针域,以下函数求出链表中所有结点数据域的和值,作为函数值返回,请填空完成程序设计。

L23: L28: L30: L33:

head p->data p->next s