首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N名学生的成绩已在主函数中放入一个带头节点的链表结构中。h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。 例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。 注意:部分源程序在文
N名学生的成绩已在主函数中放入一个带头节点的链表结构中。h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。 例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。 注意:部分源程序在文
admin
2015-07-30
42
问题
N名学生的成绩已在主函数中放入一个带头节点的链表结构中。h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 8
struct slist
{double s;
struct slist *next;
};
typedef struct slist STREC;
double fun(STREC * h)
{
}
STREC * creat(double*s)
{STREC*h,*p,*q;int i=0;
h=p=(STREC *)malloc(sized(STREC));p->s=0;
while(i<N)
{q=(STREC*)malloc(sized(STREC));
q->s=s
;i++;p->next=q;p=q;
}
p->next=0:
return h;
}
outlist(STREC * h)
{STREC*p;
p=h->next;printf("head");
do
{printf("->%4.1f",P->s);p=p->next;}
whilepP!=0);
printf("\n\n");
}
main()
{double s[N]={85,76,69,85,91,72,64,87},ave;
void NONO();
STREC * h;
h=creat(s);outlist(h);
ave=fun(h);
printf("ave=%6.3f\n",ave);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE * in,* out;
int i,j;double s[N],ave;
STREC*h:
in=fopen("in.dat","t");
out=fopen("out.dat","w");
for(i=0;i<10;i++){
for(j=0;j<N;J++)fscanf(in,"%1f,",&s[j]);
h=ereat(s);
ave=fun(h);
fprintf(out,"%6.31f\n",ave);
}
fclose(in);
fclose(out);
}
选项
答案
"double fun(STREC*h){ double ave=0.0; STREC*p=h->next; while(p!=NULL){ave=ave+p->s; p=p->next; } retum ave/N; }
解析
本题考查:链表的操作,对链表的主要操作有以下几种:建立链表、结构的查找与输出、插入一个结点、删除一个结点。
题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,求各结点数据域中数值的和,再对和求平均分。遍历链表时应定义一个指向结点的指针p,因为“头结点”中没有数值,所以程序中让p直接指向“头结点”的下一个结点,使用语句STREC*p=h->next。
转载请注明原文地址:https://kaotiyun.com/show/ssDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有定义:inta=1,b=2,C=3;,以下语句中执行效果与其它三个不同的是
设有定义:structcomplex{intreal,unreal;}datal={1,8},data2;则以下赋值语句中错误的是
有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=f
已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}
若变量已正确定义,要求通过scanf("%c%d%c%d,&c1,&a,&c2,&b)语句给变量a和b分别赋32和45,给变量c1和c2分别赋字符A和B;下列选项中数据从第1列开始输入,正确的输入形式是()。
设有以下定义:inta[3][3]={1,2,3,4,5,6,7,8,9};int(*ptr)[3]=a;则下列能正确表示数组元素a[1][2]的表达式是______。
有下列函数定义:intfun(doublea,doubleb){returna*b;}若下列选项中所用变量都己正确定义并赋值,错误的函数调用是()。
下列程序是将一个十进制正整数转化为一个八进制数,在程序的空白处应填入的语句是_______。#include<stdio.h>main(){inti=9,a,b[10]={0};scanf("%d",&A)
以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是______。
数据存储和数据流都是______,仅仅是所处的状态不同。
随机试题
简述西欧封建时期的等级制和庄园制。(首都师范大学2001年世界上古史、中古史真题)
公共政策的灵魂和目的是指
就部位而言,体表属就部位而言,上部属
缺牙区牙槽嵴愈合良好方可制作固定义齿,固定桥制作应在拔牙后
下列选项中()不是数字信号。
施工作业人员如发生法定传染病、食物中毒或急性职业中毒时,必须要在()h内向所在地建设行政主管部门和卫生防疫等部门进行报告。
有人认为竞争在,社会不能和谐。只有消除竞争,社会才算和谐,针对这个观点谈谈你的看法。
“执政兴国七十载,砥砺初心正其时。”从救国救民到兴国富民,从强国强民走向民族复兴,沿着这样一条接续奋斗之路,中国已经走到了实现民族复兴的关键时刻。中国共产党执政兴国的第一要务是
A、 B、 C、 D、 A
Asapopularsayinggoes:"【C1】______"Goodhealthenablesoneto【C2】______andachievewhathe【C3】______.Withgoodhealthweca
最新回复
(
0
)