首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件MO
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件MO
admin
2017-09-23
44
问题
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数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全国计算机二级
相关试题推荐
有以下程序:#include<stdio.h>intfun(int*k){intb=0;b=*k+b:return(B);}main(){inta[10]={1,2,3,4,5,6,7,8},i
以下程序:#include<stdio.h>#include<string.h>main(){charstr[]="abcd\n\123\xab";printf("%d",(str));}运行后的输
下面程序运行后的输出结果是()。#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[
设变量均已正确定义,若要通过scanf("%d%c%d%c”,&a1,&e1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下列所示的输入形式中正确的是(注:口代表空格字符)()。
下列4个程序中,完全正确的是()。
下面程序的运行结果是()。y=5;x=14;y=((x=3*y,x+6),x-1);printf("x=%d,y=%d”,x,y);
下面的程序在编泽时产生错误,其出错原因是()。#include<stdio.h>main(){int1_case;floatprintF;printf("请输入2个数:");scanf("%d%f",&
设有如下关系表,由关系R和S通过运算得到关系T,则所使用的运算为()。
若变量都已正确说明,则以下程序段输出结果为()。#include<stdio.h>main(){chara=’a’;intb=2;printf(a>b?”***a=%d":"###b=%d",a,B;
随机试题
关系概念是指根据事物之间的相互关系形成的概念。下列属于关系概念的有()
在单元测试中,必须为每个模块单元测试开发_________和承接模块。
限额设计的总目标是在初步设计开始前,根据批准的( )及其投资估算确定的。
建设工程管理工作是一种增值服务工作,其核心任务是为()增值。
自有资金现金流量表从()的角度出发,以()为计算基础,用于计算自有资金财务内部收益率、净现值等评价指标,考查项目自有资金的盈利能力。
完成等待期内的服务或达到规定业绩条件以后才可行权的以现金结算的股份支付,在可行权日之后,股份支付当期公允价值的变动金额应当计入()。
旅游者在住宿时出示合法身份证件、填写住宿登记表是其合法权利。()
关于明朝会审制度,下列说法不能成立的有
以下关于菜单的叙述中,错误的是
下面有关数据库表和自由表的叙述中,错误的是
最新回复
(
0
)