首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun()的功能是:将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。 其累加和通过函数值返回main()函数。例如,若n=5,则应输出8.391667。
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun()的功能是:将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。 其累加和通过函数值返回main()函数。例如,若n=5,则应输出8.391667。
admin
2013-06-12
38
问题
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun()的功能是:将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。
其累加和通过函数值返回main()函数。例如,若n=5,则应输出8.391667。
请改正程序中的错误,使它能得到正确结果。
[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。
[试题源程序]
#include<stdio.h>
#include<stdiib.h>
typedef struct aa
{
int data;
struct aa *next;
}NODE;
int fun(NODE *h)
{
int sum=0;
NODE *P;
/**********found**********/
p=h;
while(P->next)
{
if(p->data%2==0)
sum+=p->data;
/**********found**********/
p=h->next;
}
return sum;
}
NODE *creatlink(int n)
{
NODE *h, *p, *s, *q;
int i, x;
h=p=(NODE *)malloc(si zeof(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)
{
NODE *p;
p=h->next;
fprintf(Pf, "\n\nTHE 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);
}
main()
{
NODE *head; int even;
head=creatlink(12);
head->data=9000;
outlink(head, stdout);
even=fun(head);
printf("\nThe result :\n"); outresult(even, stdout);
}
选项
答案
(1)错误:while(p->next) 正确:while(p!=NULL)或while(p) (2)错误:p=h->next; 正确:p=p->next;
解析
错误1:循环时要注意循环中止的条件是p!=NULL(最后一个结点为空,就像字符串的最后一个字符为结尾标志符’\0’一样),while(p->next)使循环提前结束,所以应改为while(p!=NULL)或while(p)。
错误2:当累加完后,应该把指针指向下一个结点的指针赋给p,而不是把头指针指向的下一个结点赋给p,否则还会造成死循环,所以p=h->next;应该改为p=p->next;。
转载请注明原文地址:https://kaotiyun.com/show/GrJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数据库系统中实现各种数据管理功能的核心软件称为______。
数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。
有以下程序 main() { int x[]={1,3,5,7,2,4,6,0),i,j,k; for (i=o; i<3; i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]){k=x[j]; x[j]=x(j+1); x[j+1
以下叙述中,错误的是______。
给定程序MODI1.C中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。例如,n=10,则输出16.479905。/************found************/fun(intn)
若从键盘输入34,则以下程序输出的结果是______。#include<stdio.h>main(){inta;scanf("%d",&a);if(a>30)printf("%d",a);
fread(buf,32,2,fp)的功能是______。
在一个顺序存储的循环队列中,队头指针指向队头元素的______。
以下函数返回a所指数组中最小值所在的下标值。请完善下列程序。fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[p]______;retu
随机试题
A.直腿抬高试验阳性B.拾物试验阳性C.两者皆有D.两者皆无脊柱结核可出现
轻度缺水是指人体缺水占体重的
经产妇,29岁,足月妊娠在家自然分娩,胎儿娩出1小时后胎盘未娩出而入院。诉产时顺利,娩出一中等大小男婴,分娩至现在阴道出血量中等。前次妊娠有人工剥离胎盘史,检查宫底平脐,轮廓清晰,膀胱空虚.宫口可容三指,软产道完整,脐带外露,胎盘未娩出最常见的原因可能是
A.胶艾汤B.大补阴丸C.六味地黄丸D.左归饮E.金匮肾气丸四物汤由何方化裁而来
A.败血症B.脓血症C.毒脓败血症D.菌血症E.毒血症大量毒素进入血液循环,引起剧烈的全身反应的疾病称为
采用了同步CDMA、智能天线、软件无线电、接力切换等一系列高新技术的全新移动通信技术是()。
A注册会计师负责审计甲公司2012年度财务报表。在编制和归整审计工作底稿时,A注册会计师遇到下列事项,请代为作出正确的专业判断。(根据2011年考题修订)在编制审计工作底稿时,下列各项中,A注册会计师通常认为不必形成最终审计工作底稿的是()。,
社会工作者在引导服务对象探索自己过去的经验时,经常采用引领性技巧。下列社会工作者的回应中,运用引领性技巧的有()。
下列选项中,能够吸引起随意注意的原因是()。(2015年)
在美国职业拳击比赛中,泰森将霍利菲尔德的耳垂咬掉,则泰森的行为侵犯了霍利菲尔德的()。
最新回复
(
0
)