首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
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
2018-09-27
38
问题
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。
例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 #include<stdlib.h>
3 #define N 8
4 struct slist
5 { double s;
6 struct slist *next,
7 };
8 typedef struct slist STREC;
9 double fun(STREC *h)
10 {
11
12 }
13 STREC * creat(double *s)
14 {STREC *h,*p,*q;int i=0;
15 h=p=(STREC*)malloc(sizeof(STREC));p->s=0;
16 while(i<N)
17 {q=(STREC *)malloc(sizeof(STREC));
18 q->s=s
;i++;p->next=q;p=q;
19 }
20 p->next=0;
21 return h;
22 }
23 outlist(STREC *h)
24 {STREC *p;
25 p=h->next;printf(’’head’’);
26 do
27 {printf(’’->%4.1f’’,p->s);p=p->next;}
28 while(p!=0);
29 printf(’’\n\n’’);
30 }
31 main()
32 {double s[N]={85,76,69,85,91,72,64,87},ave;
33 void NONO();
34 STREC *h;
35 h=creat(s);outlist:(h);
36 ave=fun(h);
36 printf(’’ave=%6.3f\n’’,ave);
38 NONO();
39 }
40 void NONO()
41 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
42 FILE *in,*out;
43 int i,j;double s[N],ave;
44 STREC *h;
45 in=fopen(’’in.dat’’,’’r’’);
46 out=fopen(’’out.dat’’,’’w’’);
47 for(i=0;i<10;i++) {
48 for(j=0;j<N;j++)fscanf(in,’’%1f,’’,&s[j]);
49 h=creat(s);
50 ave=fun(h);
51 fprintf(out,’’%6.31f\n’’,ave);
52 }
53 fclose(in);
54 fclose(out);}
选项
答案
1 STREC *p=h->next; /*由于头结点中没有存放数据*/ 2 double av=0.0; /*对计算成绩平均值的变量进行初始化*/ 3 int n=0; 4 while(p!=NULL){/*判断链表是否结束*/ 5 av=av+p->s; /*对成绩进行累加*/ 6 p=p0>next;/*到下一个结点位置*/ 7 n++; /*人数加1*/ 8 } 9 av/=n; /*计算成绩平均值*/ 10 return av; /*返回成绩平均值*/
解析
(1)首先定义存放平均值的变量,并对其初始化。(2)在循环中,依次取链表中存放的成绩,并对其求和。(3)最后计算平均值,并返回值。
转载请注明原文地址:https://jikaoti.com/ti/0ta0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序段的输出结果是【】。intx=5;do{printf("%d",x-=4);}while(!(--x));
下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。#include<stdio.h>main(){inta,b,c,i;a=c=0;for(i=0;i<=10;i+=2){a
若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是
数据的存储结构是指
软件工程研究的内容主要包括:【】技术和软件工程管理。
有以下程序 main() {char s[]={"aeiou"},*ps; ps=s; printf("%c\n",*ps+4); } 程序运行后输出的结果是______。
若有下列定义(设int类型变量占2个字节):floatx=123.4567;则下列语句:printf("x=%5.2f",x);输出的结果是()。
下面定义的结构体类型包含3个成员,其中成员变量x用来存入整型数据,成员变量y用来存入实型数据,成员变量next是指向自身结构体的指针。请将定义补充完整。structstu{intx;【】【】next;}
源程序文档化要求程序应加注释。注释一般分为序言性注释和【】注释。
若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*p;p=&st;
随机试题
根据《建设工程安全生产管理条例》,注册执业人员因未执行法律、法规和工程建设强制性标准的而造成重大安全事故的,应当受到的处罚是()。
既能清热平肝,又能息风止痉的药物是
牙齿松动的原因中,下列哪项是错误的
男,24岁,因外科疾患入院,腹痛甚。查:体温38.5℃,血压90/60mmHg,呼吸30次/分,血HCO3-14mmol/L。产生上述改变的常见原因不应包括
(2015年)甲曾任乙装修公司(以下简称“乙公司”)经理,2013年3月辞职。5月8日,为获得更多折扣,甲使用其留存的盖有乙公司公章的空白合同书,以乙公司的名义与丙公司订立买卖合同,购买总价15万元的地板,合同约定,6月7日丙公司将地板送至指定地点,乙公司
以下各项中,属于中间业务的特点的有()。
数码相机是扫描仪之外的另一种重要的图像输入设备。下面有关数码相机的叙述中,正确的是
Youngpeoplearefacinganuncertainfuture.Asthe21stcenturydawned,theywerepromisedawealthofprospectsunless【M1】____
(1)WhenthecreatorsofanewsitcomcalledTheLooppitchedtheirshowtoexecutivesattheFoxtelevisionnetwork,thebroadc
A.dataB.getaccustomedC.effectD.sparedE.solveF.associatedG.detailsH.whileI.andJ.trackK.stableL.sh
最新回复
(
0
)