首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
admin
2020-01-10
28
问题
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数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/LFCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下叙述中正确的是
有以下程序charfun(ehar*c){if(*c=’A’)*c-=’A’一’a’;return*c;}main(){chars[81],*p=s;g
若有以下程序#includeint*f(int*s,int*t){intk;if(*s<*t){k=*s;*s=*t;*t=k;}returns;)
若有以下程序#includevoidsp(int*a){intb=2;*a=*a*2;printf("%d,",*a);a=&b;*a=*a*2;p
设有如下函数定义intfun(intk){if(k
如果定义floata[10],x;则以下叙述中正确的是
若有定义和语句:inta,b;Scanf("%d,%d,",&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是
已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()。
一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的
下列关于类、对象、属性和方法的叙述中,错误的是()。
随机试题
按违法的性质、程度不同,法律责任可以分为()
A.小脑幕切迹疝B.小脑扁桃体疝C.视神经损伤D.颅内低压E.原发性脑干损伤患者右侧头部遭棍击后来院,右耳流血性脑脊液,头部CT检查正常。入院3天后主诉头痛加重伴呕吐,平卧后头痛可减轻
A.增强润肺止咳作用B.增强补脾益气作用C.缓和药性D.长于益气补中E.滋阴降火蜜炙麻黄可()。
关于划拨土地使用权和其地上的建筑物,下列各选项中不符合《城镇国有土地使用权出让和转让暂行条例》规定的是()。
背景资料某汽车生产线设备安装工程,施工总承包方项目经理部的项目经理负责编制了工程施工组织总设计,编制过程中是以分部工程项目为对象进行编制的。编制完成后提交监理工程师。该设备基础工程施工完成后,施工总承包方对设备基础进行了检验,其主要检验内容
期末结转损益时,“本年利润”账户贷方所对应的账户可能为()。
政府集中采购目录和采购限额标准由县级以上人民政府确定并公布。()
出口口岸()出口日期()
银行营销组织设立的原则包括()。
(2009年第1题)下面没有错别字的一句是:
最新回复
(
0
)