首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
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
2021-02-25
36
问题
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 struer 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);
37 printf(’’ave=%6.3f\n’’,ave);
38 NONO();
39 }
40 void NONO()
41 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
42 FTLE *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=p->next; /*到下一个结点位置*/ 7 n++; /*人数加1 */ 8 } 9 av/=n; /*计算成绩平均值*/ 10 return av; /*返回成绩平均值*/
解析
(1)首先定义存放平均值的变量,并对其初始化。(2)在循环中,依次取链表中存放的成绩,并对其求和。(3)最后计算平均值,并返回值。
转载请注明原文地址:https://kaotiyun.com/show/OItp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下叙述中正确的是
下面不属于软件设计阶段任务的是
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是
若变量x、y己正确定义并贼值,以下符合C语言语法的表达式是
设有定义:chars[81];inti=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()。
若有以下定义:intx[10],*pt=x;则对x数组元素的正确引用是()。
设有定义:doublex=2.12;,以下选项中不能完整输出变量x值的语句是()。
下面结构体的定义语句中,错误的是()。
设顺序表的长度为40,对该表进行冒泡排序。在最坏情况下需要的比较次数为
随机试题
广泛深入地做好对群众的宣传、教育、发动和组织工作的作用是()。
急性肾炎的主要表现是
痢下赤白黏冻,白多赤少,腹痛,里急后重,纳呆脘闷,头身困重,舌淡苔白腻,脉濡缓,宜诊断为
工程质量监理的依据有()。
下列关于骨料在混凝土中的作用,错误的是()。
产品质量检验机构计量认证的内容不包括()。
某汽车制造企业为增值税一般纳税人,生产销售小汽车(消费税税率为5%),每辆不含税销售价格统一为10万元,2017年5月发生如下业务。(1)与某特约经销商签订了40辆小汽车的平销返利协议,协议规定该小汽车制造企业按含税销售额的5%支付返利并由经销商开具普通
有权根据宪法和法律制定行政法规的是()
(14年)设函数f(u)具有2阶连续导数,z=f(excosy)满足若f(0)=0,f’(0)=0,求f(u)的表达式.
A、壶里的B、干净的C、烧开的D、价格贵的B录音中说“我们要尽量喝没有受到污染的干净的水”,所以选B。
最新回复
(
0
)