首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。 例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。 注意:部分源程序在文件PROG1.
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。 例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。 注意:部分源程序在文件PROG1.
admin
2020-10-26
59
问题
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<stdlib.h>
#define N8
stmct 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(sizeof(STREC));p->s=0;
while(i<N)
{q=(STREC*)malloc(sizeof(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.lf",p->s);p=p->next;}
while(p!=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","r");
out=fopen("out.dat","w");
for(i=0;i<10;i++)
{
for(j=0;j<N;J++)fscanf(in,"%1]f,",&s[j]);
h=creat(s);
ave=fun(h);
fprintf(out,"%6.3lf\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; } return ave/N; }
解析
题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,求各结点数据域中数值的和,再对和求平均分。遍历链表时应定义一个指向结点的指针p,因为“头结点”中没有数值,所以程序中让p直接指向“头结点”的下一个结点,使用语句STREC*p=h->next。
转载请注明原文地址:https://kaotiyun.com/show/Lk3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有定义:typedefint*T[10];Ta;则以下选项与上述定义中a的类型完全相同的是()。
有以下程序:#includemain(){inti,array[6]={1,5,0,4};for(i=0;i
关于程序设计基本概念,以下叙述错误的是()。
有以下程序:#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");for(i
下列各序列中不是堆的是()。
下面能作为软件需求分析工具的是()。
设有定义:doublex=2.12;,以下选项中不能完整输出变量x值的语句是()。
以下叙述正确的是()。
待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后:关键码15被放到第()个位置。
给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
随机试题
对药品引起的新的和严重的不良反应需要报告的是
主要经肾脏排泄的离子型对比剂是
周某,小学文化,但是熟读法律,尤其对于农村的有关法律实务工作极为精通,其为了让更多的人相信他的能力,遂冒充律师从事法律服务,依照律师法应由哪个部门进行处罚?()
(2007年)对于无限大平壁的一维稳态导热,下列陈述中哪一项是错误的?()
根据FIDIC《施工合同条件》规定,工程变更的内容不包括()。
申请发行可交换债券的公司应当具备的条件有()。Ⅰ.公司最近1期期末的净资产额不少于人民币3亿元Ⅱ.公司最近3个会计年度实现的年均可分配利润不少于公司债券1年的利润Ⅲ.当次债券发行的金额不超过预备用于交换的股票按募集说明书公告日前10个交易日
下列叙述符合真实票据理论的是()。
与班杜拉的社会学习关系最密切的概念是()。
在某DHCP客户机执行ipconfig/all命令后得到的部分信息如图(a)所示。图(b)是在该客户机上依次执行ipconfig/release和ipconfig/renew时捕获的报文,并对其中第5条报文进行了解析。分析图中的信息并补全图中空白处的信息。
WhatEaster’sallaboutEasteristhemostimportantfestivalintheChristiancalendar.ItisthecommemorationofJesus’d
最新回复
(
0
)