首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域,从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域,从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线
admin
2013-04-02
31
问题
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域,从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKI.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 6
typedef struct 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;}
}
return 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");
}
}
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 sorting :\n");
outlist(head);
}
选项
答案
h->next p->next >=
解析
第一空:由审题分析可知,q从h的下一个元素开始寻找最小值,故第一空为“h->next”。
第二空:由审题分析可知,while 循环是在剩下的元素当中找最小值,剩下的结点是由q指向的链表,q从p的后一个结点开始,故第二空处应为“p->next”。
第三空:“if (p->data __3__ q->data)”是比较p结点和p结点数据的大小,如果p结点的数据比q结点的数据大,那么应该将p结点和q结点的数据进行交换,故第三空处应为“>=”。
转载请注明原文地址:https://kaotiyun.com/show/YJJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序: #include <stdio.h> main() {char c1=’1’,c2=’2’; c1=getchar();c2=getchar();putchar(c1);putchar(c2); }
以下程序中函数fun的功能是:构成—个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数disp。#include<stdio
有以下程序 main() {int i,s=0,t[]={1,2,3,4,5,6,7,8,9 }; for(i=0;i<9;i+=2) s+=*(t+i); printf("%d\
有以下程序 int fun1 (double a){return a*=a;} int fun2 (double x,double y) { double a=0,b=0; a=fun1
有以下程序 main() {int i,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<=3;j++)
有以下程序段 struct st {int x;int *y;}*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b};
若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是______。
以下数组定义中错误的是______。
下列定义变量的语句中错误的是______。
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值 10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:口代表空格字符)
随机试题
高钾血症与低钾血症时心电图各有何改变?
病因于寒,素体阳虚,痰从寒化,则发为
患者,女,畏光、发热和呕吐,入院时血液学检查示轻度淋巴细胞减少,C反应蛋白和白细胞计数正常。淋巴细胞减少见于
A、片剂B、栓剂C、透皮贴剂D、静脉注射溶液剂E、胶囊剂没有创伤,可避免首过效应的剂型是()。
患儿,6岁。发热1天后出现皮疹,躯干多,四肢末端少,为红色斑丘疹,数小时后变成小水疱,痒感重,被诊断为水痘,护士健康指导不正确的是
甲公司授权其采购员去采购乙公司的某产品100件,采购员拿着甲公司的空白合同书与乙公司订立了购买200件某产品的合同,由此发生纠纷后,应当采取的处理方式是()。
应收账款账户的期初余额为借方8000元,本期借方发生额2000元,本期贷方发生额30000元,该账户的期末余额为( )。
银行监管的有效实施必须具备完善的法律法规体系,从而为银行监管提供全面有效的法规依据。在我国,按照法律的效力等级划分,银行监管法律框架由()三个层级的法律规范构成。
布鲁巴奇等人在1994年提出的教学反思的方法有()。
下列各项中词语意思最接近的一项是()。
最新回复
(
0
)