首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是:将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为10,4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10。 请在程序的下画线处填入正确的内容并把下画线删除,使程
给定程序中,函数fun的功能是:将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为10,4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10。 请在程序的下画线处填入正确的内容并把下画线删除,使程
admin
2017-02-24
27
问题
给定程序中,函数fun的功能是:将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为10,4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N 6
typedef struct node{
int data;
struct node*next;
}NODE;
void fun(NODE*h)
{ NODE*p,*q;int t ;
p=h;
while(P){
/*********found*********/
q=
【1】
;
/*********found*********/
while(
【2】
)
{if(P->data>q->data)
{t=P->data;
P->data=q->data ;
q->data=t;)
q=q->next;
}
/*********found*********/
p=
【3】
;
}
}
NODE*creatlist(int a[])
{ NODE*h,*p,*q;int i;
h=NULL;
for(i=0;i<N;i++)
{ q=(NODE *)malloc(sizeof
(NODE));
q->data=a
;
q->next=NULL;
if(h==NULL)h=P=q;
else{P->next=q;P=q;)
}
return h;
}
void outlist(NODE*h)
{ NODE*P;
p=h;
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");
}
}
main()
{ 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 inverting:\n");
outlist(head);
}
选项
答案
(1)p->next (2)q (3)p->next
解析
填空1:从第2个while循环可知,q的初值应该为p的next,故此空应该填写p->next。
填空2:第2个while循环表示的是每次从链表剩下的树中找出最小的数,因此此空应该以q是否为空来判断循环是否结束,所以此空应该填写q。
填空3:当找到一个最小的数时p应该向后移,因此此空应该填写p->next。
转载请注明原文地址:https://kaotiyun.com/show/FMDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若变量已正确定义,下列正确的程序段是()。
有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(!(--X));}程序的输出结果是()。
下列程序的输出结果是()。#include<stdio.h>main(){inta=4;printf("%d\n",(a+=a-=a*a));}
有以下程序:intsub(intn){return(n/10+n%10);}main(){intx,y;scanf("%d",&x)y=sub(sub(sub(x)));printf("%d\n",y);}若运行时输入:1
下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;<n;j++)i
在下列语句中,其含义为“q为一个指针的函数,该指针指向整型数据”的定义语句是()。
以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#include<stdio.h>voidf(intx[],intn){intp0,p1,i
有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i;fprintf(f
以下程序的输出结果是main(){intc=35;printf("%d\n",c&c);}
下面程序的运行结果是【】。#include#defineSIZE12main(){chars[SIZE];intI;for(I=0;I
随机试题
门静脉高压症的护理应避免
A、色甘酸钠B、二羟丙茶碱C、易咳净D、酮替芬E、二丙酸倍氯米松适用于预防变态反应所致速发型哮喘的药物是
王某面临多起民事纠纷,拟通过诉讼或仲裁的方式解决,但王某对诉讼和仲裁的作用以及两者相互之间的区别联系等不够了解,遂就有关问题进行咨询。请回答下列(1)一(3)题:下列有关仲裁与民事诉讼两者的关系的表述中哪些是正确的?()
沥青表面处置主要起防水层、磨耗层、防滑层或改善碎(砾)石路面的作用,常用厚度为()mm。
有的士兵步枪射击成绩达标了;有的士兵步枪射击成绩没有达标;小方和小李步枪射击成绩达标了。 如果上述三个判断中只有一个符合事实,则以下哪项判断为真?
A、 B、 C、 D、 A这是一道图形位置变化题,仔细观察图形可知每个图形都有一个三角形在线段的端点,由此可排除B、D选项,再分析A、C项,结合图形,我们可以看出右端的三角形为下面的三角形移动的结果,由此可知
A、 B、 C、 D、 C
关于IP数据报的报头,以下哪种说法是错误的()。
Whatis"directed"research?Directedresearchmaybecomeadangertothefutureofsciencebecause______.
TheUnitedNationsImpressiveasthemodernnetworkofinternationalorganizationandeconomicagreementsmayseemonthes
最新回复
(
0
)