首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数
admin
2019-09-02
35
问题
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<stallib.h>
typedef struct aa
{int data;struer aa*next;}NODE;
int fun(NODE*h)
{ int sum=0;
NODE*p;
/**********found**********/
p=h;
while(p)
{ if(p->data%2==0)
sum+=p->data;
/**********found**********/
p=h->next;
}
return sum;
}
NODE*creatlink(int n)
{NODE*h r*p,*s;
int i;
h=p=(NODE*)malloc(sizeof(NODE));
for(i=1;i<=n;i++)
{s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%16;
s->next=p->next;
p->next=s;
p=p->next;
}
p->next=NULL;
return h;
}
outlink(NODE*h,FILE*pf)
fNODE*p;
p=h->next;
fprintf(pf,"\n\nTttE LIST:\n\n HEAD");
while(p)
{ fprintf(pf,"->%d",p->data);p=p->next;}
fprintf(pf,"\n");
}
outresult(int s,FILE*pf)
{ fprintf(pf,"\nThe sum of even numbers:%d\n",s);}
itlain()
{NODE*head;int even;
head=creatlink(12);
head->data=9000;
outlink(head,stclout);
even=fun(head);
printf("\nThe result:\n");outEesult(even,stdout);
}
选项
答案
(1)p=h->next; (2)p=p->next;
解析
(1)该题中函数功能是单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。对单向链表进行遍历,并在遍历过程查找数据域为偶数的结点,并将数据域为偶数的元素累加起来。
(2)从已给定源程序的main主函数开始入手,“head=creatlink(12);”语句生成随机数的链表,“outlink(head,stdout);”输出该链表,“even=fun(head);”语句调用函数fun求得链表中的数据域为偶数的值的累加和。
(1)根据题干中求得除了头结点之外的结点数据域中的数据值,头指针h,工作指针p指向头结点的下一个结点,所以第一个标识下的“p=h;”指向头结点应该改为指向下一个结点“p=h->next;”。
(2)工作指针p,利用p实现对链表的遍历,p表示指向链表的当前结点,所以指向下一个结点应该是“p=p->next;”。
转载请注明原文地址:https://kaotiyun.com/show/4dRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
给定程序MODI1.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。请改正函数f
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。注意:部分源程序存在文件PROG1.C中
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,原来的字符串为CEAedca,排序后输出为CedcEAa。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和
有以下程序#includevoidfun(char*a,char*b){while(*a==’*’)a++;while(*b=*a){b++;a++;}}main(){char*s="*a*b*",t[
有以下程序charfun(char*c){if(*c<=’z’&&*c>=’A’)*c-=’A’-’a’;return*c;}main(){chars[81],*p=s;gets(S);while(*P){*P=fun(P
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
当用户要求输入的字符串中含有空格时,应使用的输入函数是
下面不属于软件设计阶段任务的是
软件生命周期可分为定义阶段、开发阶段和维护阶段,下面属于定义阶段任务的是
下面不属于软件设计阶段任务的是
随机试题
病毒性肝炎时,肝细胞凋亡的病变是
患儿,起病急骤,突然壮热,神志昏迷,反复抽搐,惊厥不已,呕吐腹痛,大便腥臭或挟脓血,舌苔黄腻质红,脉象滑数。辨证为
女性,25岁。反复上腹痛、反酸5年,进食后加重,空腹减轻。可能的疾病是
投资者办理上海证券交易所场外认购、申购、赎回,应使用上海人民币普通股票账户或证券投资基金账户。()
弥迪平原,南驰苍梧涨海,北走紫塞雁门。拖以漕渠,轴以昆岗。重江复关之陕,四会五达之庄。当昔全盛之时,车挂轊,人驾肩,廛闬扑地,歌吹沸天。孳货盐田,铲利铜山。才力雄富,士马精妍。故能侈秦法,佚周令,划崇墉,刳浚洫,图修世以休命。是以板筑雉堞之殷,井斡烽橹之勤
心灵具备善解人意的力量,用心灵记事具有非同一般的作用,比那些枯燥的用头脑抑或知性的记事方法更能有效地记住事情。比如:当我们还是孩童时,在学习中的记忆能力要远远胜于成年后,这其中的原因是一样的。根据材料,下列各项说法中正确的是:
老张还有一年退休,工作有些不上心了,影响了进程,问你如何做?
演出进行到一定阶段,所有成员唱的歌数恰好等于要求他们唱的最少歌数,则在要求的最少歌唱完之后,该演出中下一首要演唱的歌是几号歌?若该队事先同意下面哪一项,则王在演出中能演唱的歌只有唯一确定的一首?
某网络拓扑结构及各接口的地址信息分别如下图和下表所示,S1和S2均为二层交换机。当主机l向主机4发送消息时,主机4收到的数据帧中,其封装的源IP地址为(39)。源MAC地址为(40)。(40)
Itisnotalwayspossibletoforeseetheobstacles______yourwaytowardsanambitiousgoal.
最新回复
(
0
)