首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得
admin
2015-12-22
20
问题
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 8
typedef struct list
{ int data;
struct 1ist *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("inThe listis NULL!in");
else .
{printf("\nHead");
do { printf("->%d",P->data);
p=p->next;}while(P!=NULL);
printf("->Endin");
}
}
main()
{SLIST *head;int x;
int a[N]={11,12,15,18,19,22,25,29);
head=creatliSt(a);
printf("/nThe list before inserting:
\n");outlist(head);
printf("inEnter a number:");
scanf("%d",&x);
fun(head,x);
printf("\nThe list after inserting:
in");outlist(head);
}
选项
答案
(1)x (2)p (3)s
解析
第一空:“s=(SLIST*)malloc(sizeofi[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,此时ls结点已经指向需要插入位置的下一个节点,因此在需要插入s结点的位置的上一个结点需要指向s结点,故第三处应该为“q->next=s;”。
转载请注明原文地址:https://jikaoti.com/ti/dIi0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为
下列选项中,不属于模块间耦合的是
已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。
下面程序的功能是输出数组s中最大元素的下标,请填空。main(){intk,p,s[]={1,-9,7,2,-10,3};for(p=0,k=p;p<6;p++)if(s[p]>s[k])______
在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。
设变量x和y均已正确定义并赋值。下列if语句中,在编译时将产生错误信息的是
以下不是面向对象思想中的主要特征的是
下列选项中不是字符常量的是()
下列叙述中正确的是()。
最简单的交换排序方法是______。
随机试题
下列选题中,需要办理重大选题备案手续的有()。
男性,32岁.运动后突然出现右上腹部剧痛,疼痛放射至右侧中下腹部,伴恶心、呕吐,尿液呈浓茶色。查体:腹软,右下腹部深压痛,右肾区叩击痛。
因含有汞元素,导致出现少尿、尿蛋白,甚至急性肾功能衰竭的中成药有
A公司2006年7月发生如下经济业务:(1)向某汽车贸易公司购买一辆小轿车自用,支付的含税价款为117000元。(2)接受一批捐赠小汽车,共1辆,经税务机关审核,参照国家税务总局规定同类型应税车辆的最低计税价格为100000元,小汽车的成本
天兆公司经营造船、港口建设、海运和相关智能设备制造四部分业务,这些业务的市场增长率分别为7.5%、9%、10.5%和18%,相对市场占有率分别为1.2、0.3、1.1和0.6。该公司四部分业务中,适合采用智囊团或项目组等管理组织的是()
一个人的思维活动能根据客观情况的变化而变化,这体现了思维品质的()
越来越多的人表示愿意购买医疗保险产品,但医疗保险产品的销售情况并没有与需求保持_______,因为消费者并不单是从开支管理角度来考虑,更多的是受到情感的_______,他们真正寻求的是一种心理安定,这往往是销售者所______的。
计算二重积分,其中区域D是由直线x=一2,y=0,y=2及曲线所围成的平面区域.
执行以下程序后,要输出ab44cd46结果,该执行的语句是()。ls=[’ab’,’44’,’cd’,’46’]ls.reverse()
Inascenerepeatedatsomeofthenation’smostprestigiousuniversitiesoverthelastweek,studentsandemployeeshavefound
最新回复
(
0
)