首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在
下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在
admin
2021-04-28
85
问题
下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数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全国计算机二级
相关试题推荐
在一个C源程序中所定义的全局变量,其作用域为
有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:prin
以下选项中不能作为C语言合法常量的是
有以下程序#includemain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1
有以下程序#includeintfun(intA){intb=0;staticintc=3;a=(c++,b++);return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=fun(a++);
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)
有以下程序,程序的输出结果是voidfun(double*p1,double*p2,double*s){s=(double*)calloc(1,sizeof(double));*s=*p1+*(p2+1):}mai
设有栈S和队列Q,初始状态均为空。首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为()。
对于循环队列,下列叙述中正确的是()。
随机试题
Inancienttimesthemostimportantexaminationswerespoken,notwritten.IntheschoolsofancientGreeceandRome,testingus
口对口人工呼吸的操作中,下列哪一项是错误的()
工作流程图用( )表示工作。
当钢结构安装工程跨度超过()时,属于超过一定规模的危险性较大的分部分项工程。
制作钢梁的钢板表面有锈蚀、麻点或划痕等缺陷时,其深度不得大于该钢材厚度允许负偏差值的()。
期货公司变更5%以上的股权,国务院期货监督管理机构应当自受理申请之日起()内作出批准或者不批准的决定。
将函数f(x)=ex的图像向左平移一个单位得到图像C1,再将图像C1向上平移一个单位得到C2,作出C2关于y=x的对称图像C3,则C3对应的函数解析式为()。
利用Access创建的数据库文件,其扩展名为()。
The______cycleoflifeanddeathisasubjectofinteresttoscientistsandphilosophersalike.
A、Theydamageaperson’smentalhealth.B、Theyreduceaperson’schanceofrecovery.C、Theyslowdownaperson’sreactiontocha
最新回复
(
0
)