首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件MO
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件MO
admin
2017-09-23
41
问题
下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数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<string.h>main(){charch[]="abcd",x[4][4];inti;for(i=0;i<4;i++)strcpy(x[i],ch);fo
在下列选项中,没有构成死循环的程序段是()。
有以下程序:#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
若有chars[3][3]=={"AAA","BBB","CCC"};说明语句,则与它等价的语句是()。
下面程序运行后的输出结果是()。#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[
运行下面的程序,输入字符串MicrosoftVisualStudio,则程序的执行结果是()。#include<stdio.h>main(){charChr[20];scanf("%s",&Chr);p
设变量均已正确定义,若要通过scanf("%d%c%d%c”,&a1,&e1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下列所示的输入形式中正确的是(注:口代表空格字符)()。
下列4个程序中,完全正确的是()。
若有以下定义和语句:inta=010,b=0×10,c=10;printf("%d,%d,%d\a",a,b,C);则输出结果是()。
若有以下定义(设int类型变量占2个字节)inti=8,j=9:则以下语句:printf("i=%%d,j=%%%d\n",i,j);输出的结果是()。
随机试题
哪种药物较少引起肝功能损害
关于"夺气"的病因病机描述正确的是
镜检时心肌梗死最常见的表现是()。
根据海关规定,报关员代理报关主体办理进出口货物报关纳税等海关事务。()
以下各项中,购买者具有较强的讨价还价能力的有()。
违反治安管理的行为对他人造成损害的,行为人或者其监护人应当依法承担()。
一件工作,甲、乙合做6天可以完成,乙、丙合做10天可以完成。如果甲、丙合做3天后,由乙单独做,还要9天才能完成。如果全部工作由3人合做,需几天可以完成?
(上海财大2014年)公司有三种零息债券,剩余期限1年期的到期收益率为10%,剩余期限2年期的到期收益率为1l%,剩余期限3年期的到期收益率为12%,求:若购入了3年期的零息债券,则下一年的预期收益率为?(提示:从当前价格与未来价格考虑)
DearMr.Smith,Thankyouforrespondingsoquicklytomyemploymentinquiry.Ihaveagreatinterestinthepositionofhum
Doctorsandthehealth-caresystemsinallnationsstilllargelyusepapertocommunicate.Thispaperisshuttledfromonehospi
最新回复
(
0
)