首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不
admin
2015-08-23
86
问题
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
typedef struct aa
{ int data;
struer aa*next;
} NODE;
int fun(NODE*h)
{ int max=一1;
NODE*p;
/***********found**********/
p=h;
while(P)
{ if(P->data>max)
max=p->data;
/***********found**********/
p=h->next;
}
return max;
}
outresult(int s,FILE*pf)
{ fprintf(pf,"\nThe max in link:
%d\n",s);}
NODE*creatlink(int n,int m)
{NODE*h,*p,*s;
int i;
h=p=(NODE*)malloc(sizeof(NODE));
h->data=9999;
for(i=1; i<=n; i++)
{s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%m; s->next=p->
next;
p->next=s;p=p->next;
}
p->next=NULl,;
return h;
}
outlink(NODE*h,FILE*pf)
{NODE。p;
P=h->next;
fprintf(pf,"\nTHE LIST:\n\n HEAD");
while(p)
{ fprintf(pf,"->%d",P->data);
p=p->next;}
fprintf(pf,"\n");
}
main()
{NODE*head;int m;
head=creatlink(12, 100);
outlink(head,stdout);
m=fun(head);
printf("\nTHE RESULT:\n");
outEesult(m,stdout);
}
选项
答案
(1)p=h->next; (2)p=p->next;
解析
函数功能是求单向链表结点(不包括头结点)数据域中的最大值。其中,单链表查找最大值及最小值的方法主要是对单链表的遍历,并在遍历过程中将初始化的最大值、最小值与链表中的每一个结点的数据域进行比较。
(1)根据题干中求得除了头结点之外的结点数据域中的最大值,头指针h,工作指针p指向头结点的下一个结点,所以第一个标识下的“p=h;”指向头结点应该改为指向下一个结点“p=h->next;”。
(2)工作指针p,利用p实现对链表的遍历,p表示指向链表的当前结点,所以指向下一个结点应该是“p=p->next;”。
转载请注明原文地址:https://www.kaotiyun.com/show/RTDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
有以下程序main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;
已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是
在C语言中,函数返回值的类型最终取决于
若有说明:int*p,m=5,n;,以下正确的程序段是
当说明一个结构体变量时系统分配给它的内存是()。
下列程序的输出结果是()。#include<stdio.h>intb=2;intfune(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func
下列程序将二维数组a的行和列元素互换后存放到另一个二维数组b中。请填空。main(){inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=
下列二维数组的说明中,不正确的是()。
随机试题
下列各项中,导致企业期间费用增加的有()。
______isconsideredtobethebest-knownEnglishdramatistsinceWilliamShakespeare.
以下有关C1说法正确的有
女,左下后牙反复起脓包1年,检查:左下发现牙本质龋,牙髓活力测验无反应,颊侧牙龈有瘘道。X线示根尖呈喇叭样开口,根尖周不规则透影区约4mm×6mm,云雾状,边界不清。诊断为慢性根尖周炎,拟行根管治疗,上橡皮障后,开髓进入髓腔,牙髓坏死,味臭。根管预备后
A.显于风关B.达于气关C.达于命关D.透关射甲E.未超风关病情凶险者,指纹的表现是()
甲、乙、丙、丁设立了宏达有限责任公司。甲以建设用地使用权认购出资500万元;乙以商标专用权认购出资600万元;丙以现金认购出资1000万元,但约定在公司成立2年内予以缴清;丁以一幅古画认购出资500万元。在公司的经营过程中,因资金紧张向A银行贷款500万元
甲公司向银行贷款1000万元,乙公司和丙公司向银行分别出具担保函:“在甲公司不按时偿还1000万元本息时,本公司承担保证责任。”关于乙公司和丙公司对银行的保证债务,下列哪一表述是正确的?(2011年卷三10题)
关于经济发展与金融深化的关系的说法,正确的是()。
Euthanasiaisapracticeofmercifullyendingaperson’slifeinorderto______thepersonfromanincurablediseaseandintolera
Justlikechildren,deeroftencrossBritishroadstogettotheotherside.Butthecostisthedeer’slife.Atnight,【S1】____
最新回复
(
0
)