首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。 注意: 不要改动main函
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。 注意: 不要改动main函
admin
2020-10-26
73
问题
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
【试题源程序】
#include
#include
typedef struct aa,
{
int data;
struct aa*next:
}NODE;
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,*q;
int i,x;
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\nHEAD");
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");
outresult(m,stdout);
}
选项
答案
(1)错误:p=h; 正确:p=h->next; (2)错误:p=h->next; 正确:p=p->next;
解析
程序中使用while循环语句,并结合结构体指针p来找到数据域中的最大值。
错误(1):p指向形参结构体指针h的next指针,所以应改为:p=h->next;
错误(2):p指向自己的下一个结点,所以应改为:p=p->next;
转载请注明原文地址:https://kaotiyun.com/show/st3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有如下定义:structst{intn;floatt;}a[20];FILE,Icfp:若文件已正确打开,则以下将文件内容读入数组a中的语句错误的是()。
若有定义语句:inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,以下选项中错误引用a数组元素的是(其中0≤i
有如下程序:#includevoidget_put(){charch;ch=getchar();if(ch!=’\n’)get_put();putchar(ch);}
有以下程序:#includemain(){charw[20],a[5][10]={"abcdef","ghijkl","mnopq","rgtuv","wxyz"};inti,j;for(i=0;i
以下函数按每行8个输出数组中的数据:voidfun(int*wintn){inti;for(i=0;i<n;i++){___________printf("%d",
以下涉及字符串数组、字符指针的程序段,没有编译错误的是()。
支持子程序调用的数据结构是()。
有以下程序:#includestruetS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是(
以下函数实现按每行8个输出w所指数组中的数据:#include<stdio.h>voidfun(int*w,intn){inti;for(i=0;i<n;i++){______________prinff("%d",w[i]);}p
随机试题
A.精子细胞B.精母细胞C.次级精母细胞D.肌样细胞不再进行分裂只进行变态的是()
有以下程序#include<stdio.h>main(){inti=1,k=0;for(;i<6;){switch(i%3)
以下不属于20世纪90年代以来管理理论新发展的成果的是()
当保险合同中记载的内容不一致时,下列说法正确的是:()
背景资料:某高速公路N合同段路基工程施工,工期18个月,其中K23+200~K32+200路段以填方为主,合同段附近地表土主要是高液限黏土(液限值在38~49之间),在较远地带分布有膨胀土、沼泽土、盐渍土、有机土、粉土、砂型土等。出于控制造价的考
《会计法》规定,()对本单位会计工作和会计资料的真实性、完整性负责。
根据物权法理论,下列各项中,属于准物权的是()。(2008年。经调整)
2013年全国城镇居民人均可支配收人同比增长约为()。
窗体中有文本框Text1。运行程序,输入大于0的整数m,单击按钮Command1,程序显示由星号组成的高度和边长均为m的平行四边形。例如,当m=5时,显示图形如下。************
某学校初中二年级五班的物理老师要求学生两人一组制作一份物理课件。小曾与小张自愿组合,他们制作完成的第一章后三节内容见文档“第3-5节.pptx”,前两节内容存放在文本文件“第1-2节.pptx”中。小张需要按下列要求完成课件的整合制作:在第6张幻灯片
最新回复
(
0
)