首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下画线处填入正确的内容并把下画线删
给定程序中,函数fun的功能是将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下画线处填入正确的内容并把下画线删
admin
2020-07-28
83
问题
给定程序中,函数fun的功能是将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BIANK1.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;
19 p->data=q->data;
20 q->data=t;}
21 q=q->next;
22 }
23 p=p->next;
24 }
25 }
26 NODE* creatlist(int a[])
27 {NODE*h,*p,*q; int i;
28 h=(NODE*)malloc(si zeof (NODE));
29 h->next=NULL;
30 for(i=0;i<N;i++)
31 {q=(NODE*)malloc(sizeof (NODE));
32 q->data=a
;
33 q->next=NULL;
34 if(h->next==NULL)
35 h->next=P=q;
36 else{p->next=q;p=q;}
37 }
38 return h;
39 }
40 void outlist(NODE*h)
41 {NODE*p;
42 p=h->next;
43 if(p==NULL)
44 printf(’’The list is NULL!\n’’);
45 else
46 {printf(’’\nHead’’);
47 do
48 {printf(’’->%d’’,p->data);
49 p=p->next;}
50 while(p!=NULL);
51 printf(’’->End\n’’);
52 }
53 }
54 main( )
55 {NODE*head;
56 int a[N]={0,10,4,2,8,6};
57 head=creatlist(a);
58 printf(’’\nThe original list:\n’’);
59 outlist(head);
60 fun(head);
61 printf (’’\nThe list after sor-ting:\n’’);
62 outlist(head);
63 }
选项
答案
(1)h->next(2)p->next(3)>
解析
填空1:本题考查了指针变量p赋初值,使p指向链表的头结点的下一个结点,因此本空应该填写h->next。
填空2:本空考查了q的作用,q代表p的下一个数,因此次空应该填写p->next。
填空3:if判断句是比较链表中相邻两个数的大小,如果p->data>q->data就交换这两个数的值,因而此空填写>。
转载请注明原文地址:https://www.kaotiyun.com/show/wL3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下选项中,能正确进行字符串赋值的是
下面选项中关于编译预处理的叙述正确的是
有以下程序charfun(char*c){if(*c<=’Z’&&*c>=’A’)*c-=’A’-’a’;return*c;}main(){chars[81],*p=s;gets(s);while(
若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0c=(a+=++b,b+=4);printf("%d,%d,%d\n",a,b,c);}则程序的输出结果是
若在定义语句:inta,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是
软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是
计算机软件包括
以下叙述中正确的是
设表的长度为n。在下列结构所对应的算法中,最坏情况下时间复杂度最低的是
算法的时间复杂度是指
随机试题
将“三个代表”重要思想与马克思列宁主义、毛泽东思想和邓小平理论一道确立为党必须长期坚持的指导思想,并写入党章的是党的()
指甲下脓肿应采取的最佳措施是()
设计招标的特点主要表现在( )。
关于贯标工作的组织步骤实施,以下描述不正确的是()。
下列不属于家庭财产保险适用对象的是( )。
法国启蒙思想家孟德斯鸠的“三权分立”学说最早的思想萌芽于______国,创立这一思想的思想家是______。在世界近代史上受启蒙思想影响,发生资产阶级革命或改良运动有______、______和______。
设函数f(x)在x=1的某邻域内连续,且有
学生表中有“学号”、“姓名”和“年龄”三个字段,SQL语句“SELECT学号FROM学生”完成的关系操作称为()。
1KB的准确数值是()。
HowtoApproachaDissertationI.WhatisadissertationA.Apieceofwritingwithargument:—analyzetheevidencetosupport
最新回复
(
0
)