首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
admin
2016-10-29
42
问题
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数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全国计算机二级
相关试题推荐
在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
已知下面的程序段,正确的判断是______。#defineA3#defineB(A)(A+1)*a)inta=3;……X=3*(A+B(7));
若有如下结构体说明:structSTRU{inta,b;charc:doubled;structSTRU*p1,*p2;}请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。【】
执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。mein(){chars[100];intc,i;scanf("%c",&C);
有以下程序:main(){charal=’M’a2=’m’;printf("%c\n",(al,a2));}以下叙述中正确的是______。
有以下程序: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(){inti,a[20],sum,count;sum=count=0;for(i=0;i<20;i
x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是______。
以下选项中可以作为C语言中合法整数的是______。
随机试题
A.α受体阻滞剂B.β受体阻滞剂C.利尿剂D.钙通道拮抗剂E.血管紧张素转换酶抑制剂女性,58岁。高血压10余年,冠心病3年,最宜选用的药物为
心悸伴晕厥或抽搐最常见于
视距测量时,经纬仪置于高程为162.382m的S点,仪器高为1.40m,上、中、下三丝读数分别为1.019m、1.400n和1.781m,求得竖直角α=3°12’10’’,则SP的水平距离和P点高程分别为:
账户是根据会计科目开设的,会计科目的名称就是账户的名称。所以在某种意义上,设置会计科目与设置账户是同一过程。()
对联营企业的长期股权投资,当长期股权投资的可收回金额低于其账面价值时,应当将长期股权投资的账面价值减计至可收回金额,减计的金额确认为资产减值损失,计入当期损益,同时计提相应的长期股权投资减值准备。长期股权投资减值损失一经确认,在以后会计期间不得转回。
中科公司是国内一家著名的印刷机制造商。面对G国先进印刷机在中国的市场占有率迅速提高,中科公司将业务转型为给G国印刷机的用户提供零配件和维修保养服务,取得比业务转型前更高的收益率。从风险管理策略角度看,中科公司采取的策略是()。
流动性最大的金融资产是()。
现实与虚构的_______让我们在《哈利.波特》系列电影中看到了一个虚幻与现实交错构成的现代伦敦。魔法与现代科技在一个_______的伦敦找到了奇妙的契合点。填入划横线部分最恰当的一项是()。
俄国早期马克思主义理论家普列汉诺夫说,绝不会有人去组织一个“月食党”以促进或阻止月食的到来,但要进行社会革命就必须组织革命党,这是因为社会规律与自然规律有所不同,它是
下列各类计算机程序语言中,不属于高级程序设计语言的是
最新回复
(
0
)