首页 > 计算机等级考试
题目内容 (请给出正确答案)
[主观题]

给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,

输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANKl.C中。

不得增行或删行,也不得更改程序的结构!

给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“给定程序中已建立一个带有头结点的单向链表,在main函数中将…”相关的问题
第1题
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是
求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。

请改正程序指定部位的错误,使它能得到正确结果。

[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。

[试题源程序]

include<stdio.h>

include<stdlib.h>

typedef struct aa

{

int data;

struct aa *next;

}NODE;

fun(NODE *h)

{

int max=-1;

NODE *p;

/***********found************/

p=h;

while(p)

{

if(p->data>max)

max=p->data;

/************found************/

p=h->next;

}

return max;

}

outresult(int s, FILE *Pf)

{

fprintf(pf, "\nThe max in link: %d\n", s);

}

NODE *creatlink(int n, int m)

{

NODE *h, *p, *s, *q;

int i, x;

h=p=(NODE *)malloc(sizeof(NODE));

h->data=9999;

for(i=1; i<=n; i++)

{

s=(NODE *)malloc(sizeof(NODE));

s->data=rand()%m; s->next=p->next;

p->next=s; p=p->next;

}

p->next=NULL;

return h;

}

outlink(NODE *h, FILE *pf)

{

NODE *p;

p=h->next;

fprintf(Pf, "\nTHE LIST:\n\n HEAD");

while(P)

{

fprintf(pf, "->%d", P->datA); p=p->next;

}

fprintf(pf, "\n");

}

main()

{

NODE *head; int m;

head=cteatlink(12,100);

outlink(head, stdout);

m=fun(head);

printf("\nTHE RESULT"\n");

outresult(m, stdout);

}

点击查看答案
第2题
以下程序的功能是:建立一个带有头结点的甲—向链表,并将存储在数组中的字符依次转存到链表的各个
结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。

#include <stdlib.h>

struct node

{ char data; struct node *next: };

(1) 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 = (2) ;

q->next = p;

q - (3) ;

S++;

}

p->next='\0';

return h;

}

main()

{

char str[]="link list";

struct node *head;

head = CreatList(str);

}

(1)

A.char*

B.struct node

C.struct node*

D.char

点击查看答案
第3题
若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指

若已建立如下图所示的单向链表结构:若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指若已在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。

A.p=p->next; s->next=p; p->next=s;

B.p=p->next; s->next=p->next; p->next=s;

C.s->next=NULL; p=p->next; p->next=s;

D.p=(*p).next; (*s).next=(*p).next; (*p).next=s;

点击查看答案
第4题
●对于线性表(由n个同类元素构成的线性序列),采用单向循环链表存储的特点之一是(58)。(58)A.从表中

●对于线性表(由n个同类元素构成的线性序列),采用单向循环链表存储的特点之一是(58)。

(58)

A.从表中任意结点出发都能遍历整个链表

B.对表中的任意结点可以进行随机访问

C.对于表中的任意一个结点,访问其直接前驱和直接后继结点所用时间相同

D.第一个结点必须是头结点

点击查看答案
第5题
单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点指针域的值为第一个元素结点的指针。以下关于单链表头结点的叙述中,错误的是()。

A.若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1)

B.在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理

C.加入头结点后,代表链表的头指针不因为链表为空而改变

D.加入头结点后,在链表中进行查找运算的时问复杂度为O(1)

点击查看答案
第6题
● 单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点
指针域的值为第一个元素结点的指针。以下关于单链表头结点的叙述中,错误的是 (60) 。

(60)

A. 若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1)

B. 在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理

C. 加入头结点后,代表链表的头指针不因为链表为空而改变

D. 加入头结点后,在链表中进行查找运算的时间复杂度为O(1)

点击查看答案
第7题
以下程序的功能是:建立一个带布头结点的单向链表,并将存储在数组中的字符依次存储到链表的各个结
点中,请从与下划线处号码对应的一组选项中选择出正确的选项

#include <stdlib.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";

struct node*head;

head=CreatList(str);

}

(1)

A.char*

B.struct node

C.struct node*

D.char

点击查看答案
第8题
● 若在单向链表上,除访问链表中所有结点外,还需在表尾频繁插入结点,那么采用 (31) 最节省时间。 (

● 若在单向链表上,除访问链表中所有结点外,还需在表尾频繁插入结点,那么采用 (31) 最节省时间。

(31)

A. 仅设尾指针的单向链表

B. 仅设头指针的单向链表

C. 仅设尾指针的单向循环链表

D. 仅设头指针的单向循环链表

点击查看答案
第9题
●在单向循环链表中,若头指针为h,那么p所指结点为尾结点的条件是 (50) 。(50)

A.p=NULL

B.p→next=NULL

C.p=h

D.p→next=h

点击查看答案
第10题
● 若对一个链表最常用的操作是在末尾插入结点和删除尾结点,则采用仅设尾指针的单向循环链表(不含头结点)时, (65) 。(65)

A.插入和删除操作的时间复杂度都为O(1)

B. 插入和删除操作的时间复杂度都为O(n)

C. 插入操作的时间复杂度为O(1),删除操作的时间复杂度为O(n)

D. 插入操作的时间复杂度为O(n),删除操作的时间复杂度为O(1)

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改