首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删
admin
2015-06-08
84
问题
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 6
typedef struer node {
int data;
Struct node *next:
}NODE;
void fun(NODE *h)
{NODE *P,*q; int t;
/**********found***********/
P= ____1____;
while(P) {
/**********found***********/
q=___2____;
while(q){
/**********found***********/
if (p一>data___3____q一>data)
{ t=P一>data; P一>data=q一>
data ; q一>data=t;)
q=q一>next ;
)
p。P一>next;
}
}
NODE *creatlist(int a[])
{NODE *h,*P,*q;int i;
h=(NODE *)malloc(sizeof(NODE));
h一>next=NULL;
for(i=0;i
{ q==(NODE*)malloc(sizeof(NODE));
q一>data=a
;
q一>next=NULL;
if(h->next==NULL)h一>next=
p=q;
else {P一>next=q; P=q;)
}
returrl h;
}
void outliSt(NODE*h)
{NODE*P;
P=h一>next;
if(p==NULL)printf(“The list is
NULL!\n”);
else
{ printf(“\nHead”);
do
{ printf(“一>%d”,P一>data);P=P
一>next;}
while(P!=NULL);
printf(“->End\n”);
}
}
msin()
{NODE*head;
int a[N]={0,10,4,2,8,6);
head=creatliSt(a);
printf("\nThe original list:\n");
outliSt(head);
fun(head);
printf(“\nThe list after sorting:
\n”);
outliSt(head);
}
选项
答案
(1)h一>next (2)p一>next (3)>=
解析
函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序,在fun函数内采用的是选择法排序。
第一空:由审题分析可知,q从h的下一个元素开始寻找最小值,故第一空为“h一>next”。
第二空:由审题分析可知,while循环是在剩下的元素当中找最小值,剩下的结点是由q指向的链表,q从p的后一个结点开始,故第二空处应为“p->next”。
第三空:“if(p->data___3___q一>data)”是比较p结点和q结点数据的大小,如果p结点的数据比q结点的数据大,那么应该将p结点和q结点的数据进行交换,故第三空处应为“>=”。
转载请注明原文地址:https://kaotiyun.com/show/JiJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
当执行下面的程序时,如果输入ABC,则输出的结果是()。#include<Stdlib.h>main(){charss[]="1,2,3,4,5";gets(ss);strcat(ss,"6789");pri
若有以下定义和语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a则不能表示a数组元素的表达式是()。
执行下面程序的正确结果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");
有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),(intx){returnf2(x)-f1(
【】是数据库应用的核心。
下述关于C语言文件的操作的结论中,正确的是______。
有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib
有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}该程序的执行结果是______。
下列函数定义中,会出现编译错误的是______。
若有说明inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是______。
随机试题
(1)以“职位”表和“求职”表为数据源,创建查询“查询1”,统计每个职位的求职人数。结果湿示“职位编号”和“求职人数”字段。查询结果如图1所示。(2)以“个人信息”、“求职”和“职位”表为数据源,创建参数查询“按账号查询求职信息”,实现输入账号查询求职
激光切割与剪切、冲切、锯切不同,不是用机械力把材料在常温下割断,而是用激光束照射被割材料,使照射点材料分离。
甲是位超级球迷,踢球很多,对于足球方面的信息了解也很充足,在办公室男同事之间很受尊敬,因此,大家都很尊重他,则甲至少具有哪种权力()
肋骨最易发生骨折的是()
禽患()病时须作扑杀销毁。
身体外嚣部分,除乳晕、腋窝等处,如皮肤色素沉着增加,常见于( )
一水平放置的恒定变直径(沿程放大)圆管流,当不计水头损失时,1、2断面形心点压强关系是( )。
进行初步可行性研究时,投资估算方法采用()。
NewYear’sEverequirestheultimatepartyoutfit.Butwhatifyourholidayspendinghasburnedholesinyourpockets?Thea
Itisnotpolitetoarriveatadinnerpartymorethan15to20minuteslate.Thehostorhostessusuallywaitsforallthegues
最新回复
(
0
)