首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
admin
2015-12-22
78
问题
给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 5
typedef struct node{
int data;
struct node *next;
}NODE;
void fun(NODE *h)
{NODE *p,*q,*r,
/**********found**********/
P=h->___1___;
/**********found**********/
if(p==___2___)return;
q=P->next;
p->next=NULL;
while (q)
{ r=q->next;q->next=p;
/**********found**********/
P=q;q=___3___;
}
h->next=P,
}
NODE *creatlist(int a[])
{NODE *h,*P,*q; int i;
h=(NODE*)malloc(sizeof(NODE));
h->next=NULL;
for(i=0,i
{qffi(NODE *)malloc(sizeof(NODE));
q->data=a
,
q->next=NULL;
if(h->next==NULL)h->next=
p=q;
else{P->next=q;P=q,}
}
return h;
}
void outliSt(NODE *h)
{NODE *p;
P=h->next;
if(pffi=NULL)printf("The list is
NULL!\n");
else
(printf("inHead"),
do
{printf("->%d",P->data);P=P
->next;}
while(P!=NULL);
printf("->Endin");
}
}
main()
{NODE *head;
int a[N]={2,4,6,8,10);
head=creatlist(a);
printf("inThe original list:in");
outlist(head);
fun(head);
printf("\nThe list after inverting:
in");
outlist(head);
}
选项
答案
(1)next (2)0或NULL (3)r
解析
函数fun的功能是将带头结点的单向链表逆置。
第一空:“p=h->1 ;”对结点p进行初始化,由审题分析可知,p初始化为链表的第二个结点,即p->next,故第一空处应为“next”。
第二空:“if(p==__2__)return;”如果链表只有一个结点,无需逆置,即第二空处为“0”或“\0”或“NULL”。
第三空:循环内完成结点的指针指向前一个结点,“r=q->next;”r已经指向q的下一个结点,“q->next=p;”将q结点指向链表的前一个结点,“p=q;”是将p结点往后移动一个结点位置,第三空处是q结点往后移动一个结点位置,即第三空处为“r”。
转载请注明原文地址:https://kaotiyun.com/show/sWDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序段的运行结果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));
下列程序的输出结果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i
若变量已正确定义,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是
数据库设计包括两个方面的设计内容,它们是
栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是
若有下列定义,则对a数组无素地址的正确引用是()。inta[5],*p=a;
在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。
下列不是合法的C语言语句是()
最简单的交换排序方法是______。
已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。struct1ink{chardata;}node;
随机试题
范例教学法的倡导者是
试述在中国如何进行城市旧城改造与新区开发。
下列关于作家、作品搭配错误的是()
严重支气管哮喘发作时,血气分析可有下列哪些改变
哪种情况可出现间歇脉
2006年夏季以来在我国南方流域出现大面积的发病,从江西开始,紧接着蔓延到多个省份,直至秋冬季节在北方多个省份也爆发。发病初期,猪群发热、全身皮肤潮红,厌食、打堆、精神委顿;多数猪呼吸困难,咳嗽、喷嚏;经抗生素治疗效果不明显。母猪发生流产、产弱仔、死胎、木
下列何药能抑制咳嗽中枢并兼有外周性镇咳作用
《国家中长期教育改革和发展规划纲要(2010一2020年)》提出,立德树人,把()融入国民教育全过程。
危机介入模式是围绕服务对象的危机而展开的服务。针对危机介入模式的特点,社会工作者()。
为了使模块尽可能独立,要()。
最新回复
(
0
)