首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
admin
2016-10-29
62
问题
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#inc2ude
#define N 8
typedef struer list
{ int data;
Struct list *next;
}SLIST;
void fun(SLIST*h,int x)
{SLIST*p,*q,*s;
s=(SLIST*)malloc(sizeof(SLIST));
/**********found**********/
s->data=____1____;
q=h;
p=h->next;
while(p!=NULL&&x>p->data){
/**********found**********/
q=____2____;
p=p->next;
}
s->next=p;
/**********found**********/
q->next=____3____;
}
SLIST *creatlist(int *a)
{SLIST*h,*p,*q;int i;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0; i
{q=(SLIST*)malloc(sizeof(SLIST));
q->data=a
;p->next=q;p=q;
}
p->next=0;
return h;
}
void outlist(SLIST*h)
{ SLIST*p;
p=h->next ;
if(p==NULL)printf("\nThe list
is NULL!\n");
else
{printf("\nHead");
do{printf("->%d",p->data);
p=p->next;}while(p!=NULL);
printf("->End\n");
}
}
main()
{SLIST*head;int x;
int a[N]={11,12,15,18,19,22,25,
29};
head=creatliSt(a);
printf("\nfhe list before inserting:
\n"); outlist(head);
printf("\nEnter a number:");
Scanf("%d",&X);
fun(head,x);
printf("\nThe list after inserting:
\n");outlist(head);
}
选项
答案
(1)x (2)p t 3)s
解析
第一空:“s=(SLIST*)malloc(sizeof(SLIST));”显然s是一个新结点,第一空处是给新结点的数据域赋值x,因此第一空处应该是“s->data=x;”。
第二空:循环“while(p!=NuLL&&x>p->data)”是用来寻找插入位置,当链表没有结束且x仍然火于p所指向的结点的数据时,就不断的向链表后面搜索。在循环体内,语句“p=p->next;”是找到下一个结点的地址,变量q用来保存当前结点的地址,因此第二空处应该是“q=p;”。
第三空:“s->next=p;”将s插入链表当中,s指向p,此时s结点已经指向需要插入位置的下一个节点,因此在需要插入s结点的位置的上一个结点需要指向s结点,故第三处应该为“q->next=s;”。
转载请注明原文地址:https://kaotiyun.com/show/9VDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在设计程序时,应采纳的原则之—是______。
若有如下结构体说明:structSTRU{inta,b;charc:doubled;structSTRU*p1,*p2;}请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。【】
以下程序的输出是【】。main(){charstr1[]=Howdoyoudo",*p=strl;strcpy(str1+strlen(str1)\2"esshe");pfinff("
有以下程序:inta=2;intf(intn){staticinta=3;intt=0;if(n%2)(staticinta=4;t+=a++;}else{statici
有以下程序:matin(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[o]);}
设有定义:floata=2,B=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是______。
有以下定义语句:doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是______。
有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上
有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);
有以下程序main()}inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d/n",s);}程序的输出结果是
随机试题
男性,50岁,右阴囊可复性肿物14年,不能还纳1天,伴呕吐,停止排气、排便。查体:心率108次/分,血压150/105mmHg,右阴囊肿大,压痛明显,腹膨隆,肠鸣音亢进,白细胞14×109/L,中性85%。对该患者的最佳处理是
A.重铬酸盐中毒B.甲醇中毒C.短效巴比妥类中毒D.蕈中毒急性中毒血液透析的首选指征是
下列哪项不是引起肝性脑病的诱因
法律效力是指法的适用范围,法律效力是包含
某二级公路上需建造一座跨度为25m的预应力混凝土简支梁桥,该桥使用不久即发现桥面下沉,底板混凝土开裂。业主召集有关人员到现场调查,并查阅了地质钻探资料、施工组织设计和施工记录。经查:桥位处地质为表面有厚5—7m不等的强风化泥岩,岩体破碎,裂隙发育,容许承载
根据中国金融理财标准委员会关于从业经验认定范围的规定,下列选项不正确的是( )。
下列税种中,不属于特定目的税的是()。
《周礼》
评析19世纪末20世纪初欧美新教育和进步主义教育思潮的共同特征、意义及其局限性。(2012年南京师大)
江泽民在北京大学成立一百周年讲话中指出:创新是一个民族的灵魂,是一个民族不竭的动力之源,这是因为()
最新回复
(
0
)