首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。 注意: 不要改动main函
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。 注意: 不要改动main函
admin
2020-10-26
68
问题
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数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://www.kaotiyun.com/show/st3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
以下程序段中的变量已定义为int类型,则sunl=pad=5;pAd=sum++,pAd++,++pAd;printf("%d\n",pad);程序段的输出结果是()。
有以下程序:#includemain(){charw[20],a[5][10]={"abcdef","ghijkl","mnopq","rgtuv","wxyz"};inti,j;for(i=0;i
有以下程序:#include#defineD(x)2*x+3main(){inti=1,j=2;printf("%d\n",D(i+j));}程序运行后的输出结果是(
有以下程序:#include<stdio.h>main(){intx=1,y=0;if(!x)y++;elseif(x==0)y+=2:elsey
以下涉及字符串数组、字符指针的程序段,没有编译错误的是()。
有以下程序:#include<stdio.h>main(){chara=4:prinff("%d\n",a=a<<1);}程序运行后的输出结果是()。
有以下程序:#includestruetS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是(
有以下程序;#include#defineN2#defineMN+1#defineMUN(M+1)*M/2main(){printf("%d\n",MUN);}
随机试题
谈判中,如果双方实力相等、地位相当,可选择的外汇风险防范方法是()
血栓闭塞性脉管炎病变主要位于()。
采用成本法估价,计算该建筑物折旧时,确定建筑物的剩余经济寿命应()。估价机构评估出该商业楼在2007年3月1日的公开市场价值为4000万元。近年来此类房地产的价格年均上涨5%趋势仍将继续。另根据拍卖行统计数据,此类房地产快速变现率一般为其正常市
(2009年)下列波函数不合理的是()。
甲公司原有业务为糖果食品,而在糖果食品行业要想获得进一步的发展比较困难。但是发现宠物食品行业得到了空前的发展,所以该公司利用这一时机,通过收购美国最大的宠物食品公司,成功进军宠物食品行业。其背后的动因可归结为()。
当企业的企业年金缴费不超过工资总额的()时,企业缴费可以从成本中列支。
科学思维与艺术思维的区别是什么?(安工程2014年研)
根据西周民事立法,买卖奴隶、牛马等大宗交易必须使用的较长契券被称为
结构化模块设计的辅助工具不包括()。
Completethesentencesbelow.WriteONEWORDONLYforeachanswer.Themanneedstosendhis______tothehotel.
最新回复
(
0
)