首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在
下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在
admin
2021-04-28
49
问题
下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正函数fun中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdio.h>
2 #include<conio.h>
3 #include<stdlib.h>
4 typedef struct aa
5 {int ctata;
6 struct aa * next;
7 }NODE ;
8 fun(NODE*h)
9 {int max=-1;
10 NODE*p;
11 /*********found*********/
12 p=h;
13 while(p)
14 {if(p->data>max)
15 max=p->data;
16 /********* found*********/
17 p=h->next;
18 }
19 return max;
20 }
21 outresult(int s,FILE*pf)
22 {fprintf(pf,’’\nThe max in link:%d\n’’,s);
23 }
24 NODE * treatlink(int n,int m)
25 {NODE*h,*p,*s ;
26 int i;
27 h=p=(NODE *)malloc(sizeof (NODE));
28 h->data=9999;
29 for(i=l;i<=n;i++)
30 {s=(NODE*)malloc(sizeof (NODE));
31 s->data=rand()%m;
32 s->next=p->nexL;
33 p->next=s;p=p->next;
34 }
35 p->next=NULL;
36 return h;
37 }
38 outlink(NODE*h,FILE*pf)
39 {NODE*p;
40 p=h->next ;
41 fprintf(pf,’’\n The LIST:\n\n HEAD’’);
42 while(p)
43 {fprintf(pf,’’->%d’’,p->data);
44 p=p->next;}
45 fprintf(pf,’’\n’’);
46 }
47 main()
48 {NODE*head;int m;
49 system(’’CLS’’);
50 head=creatlink(12,100);
51 outlink(head,stdout);
52 m=fun(head);
53 printf(’’\nThe RESULT:\n’’);
54 outresult(m,stdout);
55 }
选项
答案
(1)p=h->next; (2)p=p->next;
解析
(1)因为链表的头结点没有数据域,所以对指针p进行初始化时,要将p指向头结点的下一个结点。
(2)通过指针p的移动遍历链表,因此此处应改为p=p->next;。
转载请注明原文地址:https://kaotiyun.com/show/fWtp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若要定义一个具有5个元素的整型数组,以下错误的定义语句是()。
有以下程序:#includeintb=3:intfun(int*k){b=*k+b;return(b);}main(){inta[10]={1,2,3,4,5,6,7,8),i;
有以下程序#includemain(){inta=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后输出结果是
下面叙述中错误的是
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是
下面不属于软件需求分析阶段主要工作的是
设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。现经过一系列入队与退队操作后,front=rear=1,此后又正常地插入了两个元素。最后该队列中的元素个数为()。
有以下程序#include<stdio.h>#include<string.h>voidfun(int*p1,int*p2,int*s){s=(int*)calloc(1,sizeof(int));*s=*p1+*p2;flee(s);}ma
下列与队列结构有关联的是
设循环队列存储空间为Q(1:50)。初始状态为front=rear=50。经过一系列入队和退队操作后,front=14,rear=19,则该循环队列中的元素个数为
随机试题
Theeconomiccontrolsimplementedduringthesecondworldwarmaketoday’srestrictionsonrestaurantsandfootballstadiumsloo
A、5°B、20°C、30°D、45°E、90°解剖式人工牙牙尖斜度
环甲膜切开术的体位是
建设工程项目管理规划的内容一般包括()。
任何企业的年度财务会计报告均包括会计报表和会计报表附注。()
()是指借款人将本人或第三人(限自然人)的物业抵押给银行,银行按抵押物评估值的一定比率为依据,设定个人最高授信额度的贷款。
水壶:开水
A.急性B淋巴细胞性白血病B.急性T淋巴细胞性白血病C.急性粒细胞性白血病D.急性红白血病E.急性巨核细胞性白血病CDl3阳性见于
ErumNadeem:Yourarticleonhappinessliftedmyspirits.Thereisoneveryinterestingaspecttonote:theeightstepstoh
Thegroupofyoungmencreatedthevirusesto______.Accordingtothepassage,whichofthefollowingistrue?
最新回复
(
0
)