首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
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
51
问题
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全国计算机二级
相关试题推荐
有以下程序#includemain(){int13=2,k=0;while(k++&&n++>2);Pintf(”%d%d\n”,k,n.);}程序运行后的输出结果是
下列循环体的执行次数是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);
设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
设有以下定义:inta[3][3]={1,2,3,4,5,6,7,8,9};int(*ptr)[3]=a;则下列能正确表示数组元素a[1][2]的表达式是______。
有下列函数:intfun(char*s){char*t=s;while(*t++);return(t-s);}该函数的功能是()。
算法的空间复杂度是指_______。
下列程序中函数reverse()的功能是将a所指数组中的内容进行逆置。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;
若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是()。
将E-R图转换到关系模式时,实体与实体间的联系可以表示成()
随机试题
患者,女,29岁。1周前因食物嵌塞痛就诊,诊断为深龋,垫底后银汞合金充填。现患者出现冷热刺激敏感,无自发痛及咬合痛。造成患者术后出现冷热刺激敏感症状的原因有以下可能,除了
用塑料(丙烯聚合物)扁条(宽度6ram)编结的缏条缝合成的遮阳帽
贷款定价所包含的成本包括资金成本、经营成本、风险成本和资本成本。资本成本主要是指商业银行的股权成本,资金成本主要指商业银行负债的债务成本。()
电话银行是通过()及人工服务应答方式为客户提供金融服务。
D公司为一家上市公司,已公布的公司2014年财务报告显示,该公司2014年净资产收益率为4.8%,较2013年大幅降低,引起了市场各方的广泛关注。为此,某财务分析师详细搜集了D公司2013年和2014年的有关财务指标,如下表所示:要求:计算D公司2
新型业务模式与传统的业务运营模式相比的优点有()。
下列关于直方图的描述中正确的有()。
Dreamingisnotsimplyaby-productofthesleepstagefromwhichitemerges,calledREMsleep.Instead,REM-sleepdreamingse
Between1807and1814theIberianPeninsula(comprisingSpainandPortugal)wasthesceneofatitanicandmercilessstruggle.I
微型计算机使用的键盘上的SHIFT键称为 ( )
最新回复
(
0
)