首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中已建立一个带有头结点的单向链表, 链表中的各结点按结点数据域中的数据递增有序链 接。函数fun的功能是:把形参x的值放入一个新结 点并插入到链表中,插入后各结点数据域的值仍保持 递增有序。 请在程序的下划线处填入正确的内容并把下划 线删除
给定程序中已建立一个带有头结点的单向链表, 链表中的各结点按结点数据域中的数据递增有序链 接。函数fun的功能是:把形参x的值放入一个新结 点并插入到链表中,插入后各结点数据域的值仍保持 递增有序。 请在程序的下划线处填入正确的内容并把下划 线删除
admin
2017-11-27
77
问题
给定程序中已建立一个带有头结点的单向链表,
链表中的各结点按结点数据域中的数据递增有序链
接。函数fun的功能是:把形参x的值放入一个新结
点并插入到链表中,插入后各结点数据域的值仍保持
递增有序。
请在程序的下划线处填入正确的内容并把下划
线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 8
typedef struct 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("\nThe 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 (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/u2xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设q1和q2是指向一个int型一维数组的指针变量,k为float型变量,下列不能正确执行的语句是()。
下面程序的输出结果是()。#includemain(){chara[]={‘a’,‘b’,‘C’,‘d’,‘f’,‘g’},*p;p=a;printf(“%c﹨n”,*p+4);
定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(i:0;i
下列有关数据库的描述,正确的是()。
以下程序的输出结果是______________。intfun(intx,inty,int*p,int*q){*p=x*y;*q=x/y;}main(){inta,b,
阅读下面程序,则程序的执行结果为______________。#include“stdio.h”main(){inta=10;fun(a);.printf(“%d\n”,a);}fun(intx
当用“#defineF37.5f”定义后,下列叙述正确的是()。
设R是一个2元关系,有3个元组,s是一个3j己关系,有3个元组。如T=R×S,则T的元组的个数为()。
在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个__________实际上对应一个处理模块。
随机试题
原核生物的DNA-polI
铁剂治疗营养性缺铁性贫血,血红蛋白达正常后继续用药的时间是
当降水深度超过8m时,宜采用的井点降水法是(),降水深度可达8~20m。
下列符合铁路混凝土轨枕垛码规定的是()。
下列对于看涨期权价值表述A的是()。
顿悟是以对问题的某一方面突然领悟为前提的。()
下列不是《中华人民共和国预防未成年人犯罪法》所称“严重不良行为”的是()。
已知f(2)=,f'(2)=0,f(x)dx=1,求x2f"(x)dx.
2005年5月16日至18日,第9届《财富》全球论坛在北京举行。本届论坛的主题是
设随机变量Y在[0,1]上服从均匀分布,F(x)(0≤F(x)≤1)是严格单调递减且连续的函数,则由关系式Y=F(X)定义的随机变量X的分布函数是()
最新回复
(
0
)