首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删
admin
2021-04-28
55
问题
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 #include<stdlib.h>
3 #define N 6
4 typedef struct node{
5 int data;
6 struct node *next;
7 } NODE;
8 void fun(NODE *h)
9 { NODE *p,*q;int t;
10 /**********found**********/
11 p=___1__;
12 while(p) {
13 /**********found**********/
14 q=__2__;
15 while(q) {
16 /**********found**********/
17 if(p->data__3__q->data)
18 { t=p->data;p->data=q->data;q->data=t;}
19 q=q->next;
20 }
21 p=p->next;
22 }
23 }
24 NODE *creatlist(int a[])
25 { NODE *h,*p,*q;int i;
26 h=(NODE *)malloc(sizeof(NODE));
27 h->next=NULL;
28 for(i=0;i<N;i++)
29 { q=(NODE *)malloc(sizeof(NODE));
30 q->data=a
;
31 q->next=NULL;
32 if(h->next==NULL)h->next=p=q;
33 else{p->next=q;p=q;}
34 }
35 return h;
36 }
37 void outlist(NODE *h)
38 { NODE *p;
39 p=h->next;
40 if(p==NULL)printf(’’The list is NULL!\n’’);
41 else
42 { printf(’’\nHead’’);
43 do
44 {printf(’’->%d’’,p->data);p=p->next;}
45 while(p!=NULL);
46 printf(’’->End\n’’);
47 }
48 }
49 main()
50 { NODE *head;
51 int a[N]={0,10,4,2,8,6};
52 head=creatlist(a);
53 printf(’’\nThe original list:\n’’);
54 outlist(head);
55 fun(head);
56 printf(’’\nThe list after sorting:\n’’);
57 outlist(head);
58 }
选项
答案
(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/sRtp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有定义:inta=1,b=2,c=3;以下语句中执行效果与其它三个不同的是
在下列选项中,没有构成死循环的程序段是()。
有以下程序#includestructS{inta;intb;};main(){structSa,*p=&a;a.a=99;printf("%d\n",_______);}程序要求输出结构体中成员a的
有以下程序voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6
当变量c的值不为2、4、6时,值为“真”的表达式是()。
设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )。
关于字符数组定义中存在语法错误的是()。
已有定义:charc;,程序前面已在命令中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是
请编写函数fun,它的功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fu
随机试题
Pickouttheappropriateexpressionsfromtheeightchoicesbelowandcompletethefollowingdialoguebyblackeningthecorrespo
关于促胰液素的作用,下列哪项是错误的?
A.太白、内关B.心俞、胆俞C.行间、侠溪D.公孙、足三里治疗心胆气虚型不寐,除主穴外,宜配用
男,48岁。因胃癌而行剖腹探查时,发现肿块已浸润至横结肠,但较局限,该患者宜
下列有关组织、强迫、引诱、容留、介绍卖淫罪,说法正确的是:()
对银行间债券市场交易的固定收益品种进行估值时应采用()提供的相应品种当日的估值价格。
根据《合伙我企业法的约定》,有限合伙人出现一定情形时当然退伙,下列不属于有限合人当然退伙情形的是()
至少在中文世界,将儒家传统定性为一种“人文主义”,已经成为学界的_____。而视儒家传统为一种“宗教”,或者认为儒家传统具有一种宗教性,则自清末民初以来一直聚讼不已,至今_____。填入横线部分最恰当的一项是:
为保证经济增长和控制通货膨胀,世界各国对成品油价格均有不同程度的管制,但是在原油价格持续飙升的情况下,很多国家的财政补贴开始显得_______。而且,问题的关键并不在于国家财力能否承担,而是补贴政策本身会进一步拉升油价,由此陷入恶性循环。填入画横线部分最恰
当前的教育研究越来越倾向于学者、教师和行政人员三方面的协作研究,倾向于多学科专家共同参与,这是教育问题以及教育研究对象__________特征的反映。
最新回复
(
0
)