首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数
admin
2019-09-02
70
问题
给定程序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://www.kaotiyun.com/show/4dRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
给定程序中,函数fun的功能是:有N×N矩阵,将矩.阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。例如,若N=3,有下列矩阵
下列选项中不符合良好程序设计风格的是
以下选项中不合法的标识符是
以下选项中作为C语言合法常量的是
表达式3.6-5/2+1.2+5%2的值是
若有以下程序,则程序的输出结果是#includemain(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%d\n”,c1,c2);}
设有如下的说明和定义struct{inta;char*s;)x,*p=&x;x.a=4;x.s=hello";则以下叙述中正确的是
下列条件语句中,输出结果与其他语句不同的是
有两个关系R和S如下:由关系R通过运算得到关系S,则所使用的运算为
下面不属于软件需求分析阶段任务的是
随机试题
幼儿听老师讲大灰狼扮成兔妈妈想要吃小白兔的故事后,对大灰狼憎恶,对小白兔友善。这里发生的是言语信息的学习。()
项目经济影响效果的传递途径包括下面选项中的()。
工程项目组织计划中,项目内各组织单元之间的职责与任务分工衔接称为()。
某建设单位(甲方)与某施工单位(乙方)签订了施工合同,同时与某降水公司订立了工程降水合同。甲乙双方规定:采用单价合同,每一分项工程的实际工程量增加(或减少)超过招标文件中工程量的25%以上时调整单价;工作B、E、G作业使用的主导施工机械一台(乙方自备),台
定积分的值为________.
学习课文时分段、归纳段意属于精细加工策略。()
采用方差分析法来推断某个因素对所考察的指标有无显著影响,该因素有K个水平,样本容量为N,则下列表述中正确的是()
Thefunnythingabouthowabankworksisthatitfunctionsbecauseofourtrust.Wegiveabankourmoneytokeepitsafeforu
啃老族(NEETgroup)是指那些既没有上学、也没有就业或接受职业培训的年轻人,年龄在20岁至30岁之间。他们主动放弃了就业的机会,赋闲在家,而原因并不是找不到工作。他们的日常生活依靠父母,而且花销往往不菲。啃老族的出现多半是因为父母过于溺爱。调查显示
中华民族的传统文化博大精深,源远流长。早在2000多年前,就产生了以孔孟为代表的儒家学说(Confucianism)和以老子和庄子为代表的道家学说(Taoism),以及其他许多也在中国思想史上占有一定地位的学说和学派(doctrine)。这就是有名的诸子
最新回复
(
0
)