首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件MO
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件MO
admin
2017-09-23
54
问题
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
请改正函数fun中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动maln函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio .h >
#include < conio .h >
#include < stcilib.h >
typedef struct aa
{ int data;
struct aa * next;
} NODE;
int fun (NODE*h)
{ int sum =0;
NODE *p;
p = h一 > next;
/*********found*********/
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;
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)
{ NODE *p;
p= h 一 > next;
printf ("\n\n The LIST :\n\n
HEAD") ;
while (p)
{ printf ("一 > % d",p 一 > data) ;
p =p 一 > next; }
printf "\n") ;
}
void main ()
{ NODE *head; int sum;
system ( "CLS") ;
head = creatlink (10) ;
outlink (head) ;
sum = fun (head) ;
printf ( " \nSUM =% d", sum) ;
}
选项
答案
(1)while (p!=NULL) (2)p=p一 >next;
解析
(1)判断当前指针p指向的结点是否存在,若存在则对该结点数据域进行判断操作。
(2)判断结束后指针指向下一个结点。
转载请注明原文地址:https://kaotiyun.com/show/Gsxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设函数中有整型变量a,为保证其在未赋初值的情况下初值为0,应选择的存储类别是()。
下面程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=s
下面程序运行后的输出结果是()。#include<stdio.h>main(){inta[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;for(i=0;i<5;i++)s=s+b[a[
下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
下面程序的输m结果是()。typedefunion{doublex[3];inty[4];charz[10];}M;Mt;main(){Printf("%d\n",sizeof
设有输入语句scanf("a=%d,b=%d,c=%d",&a,&b,&C),为使变量a的值为2,b的值为4,c的值为8,则从键盘输入数据的正确形式是()。
当把4个表达式用做if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是()。
若有以下定义(设int类型变量占2个字节)inti=8,j=9:则以下语句:printf("i=%%d,j=%%%d\n",i,j);输出的结果是()。
在一介C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使削的存储类别是()。
随机试题
下列有关设备管理任务的叙述中,错误的是_________。
下列说法正确的是()。
女性,68岁,患肝硬化已5年,近日发现牙龈出血、夜间睡眠时流涎呈粉红色,皮肤有许多出血点,且有尿频、尿急、腰痛,经检查后确认为肝硬化、脾功能亢进、全血细胞减少,伴泌尿系感染。泌尿系感染是由于
剧烈疼痛的急性牙髓炎有效的止痛方法是()
下列关于自知力的叙述,不正确的是()
A.舒肝和胃,理气止痛B.理气化痰,消食散结C.活血化瘀,化痰软坚D.温中散寒,健脾调胃E.补养气血,健脾益胃
下列关于改扩建项目财务分析的表述中,正确的有()。
2010年5月,甲公司销售商品实际应交增值税38万元、应交消费税20万元,提供运输劳务实际应交营业税15万元;适用的城市维护建设税税率为7%,教育费附加为3%,假定不考虑其他因素,甲公司当月应列入利润表“营业税金及附加”项目的金额为()万元。
公文办理主要分为()。
一般认为,一个人50岁和他30岁时相比,运动和身体协调能力显著减退。最近的一项调查显示,50岁的人和30岁的人在踢毽子时所表现出的运动和身体协调能力没有明显差别。因此,认为一个人到了50岁运动和身体协调能力会显著减退的看法是站不住脚的。以下哪项如果为真,最
最新回复
(
0
)