首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
admin
2021-02-25
46
问题
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define N8
struct slist
{
double s;
struct sliSt*next;
};
typedef struct slist STREC;
double fun(STREC*h)
{
}
STREC*treat(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.1f",p>s);
p=p->next;/*输出各成绩*/
}while(P!=NULL);
printf("\n\n");
}
void main()
{
double s[N]={85,76,69,85,91,72,64,87},ave;
STREC*h;
h=creat(s);outlist(h);
ave=fun(h);
printf("ave=%6.3f\n",
ave);
}
选项
答案
double fun(STREC*h) { double av=0.0; STREC*p=h->next;/*p直接指向“头结点”的下一个结点,即第一个成绩*/ while(p!=NULL) {av=av+p->s;/*求总分数*/ p=p->next; } return av/N;/*返回平均值*/ }
解析
题目要求求链表中数据域的平均值,应首先使用循环语句遍历链表,求各结点数据域中数值的和,再求平均数。遍历链表时应定义一个指向结点的指针p,因为“头结点”中没有数值,所以程序中让p直接指向“头结点”的下一个结点,使用语句STREC*p=h->next;。
转载请注明原文地址:https://kaotiyun.com/show/DBtp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下不合法的数值常量是
若有以下程序#includeintk=7;voidf(int**s){int*t=&k;*s=t;printf("%d,%d,%d,",k,*t,**s);}main(){inti=3,
有以下程序#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}voidmain()
有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%3.Of\n",a)
以下叙述中正确的是
设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是
若有以下语句:intn;floatf=13.8;则执行n=(int)f%3;后,n的值是()。
下列方法中,属于白盒法设计测试用例的方法的是()。
在面向对象方法中,不属于"对象"基本特点的是()。
i若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是()。
随机试题
有些结构件虽然工艺安排了焊后热处理,但焊后检查变形很小,也可以不进行热处理。
哪种不是脾肿大为主的病因
A.可致肺水肿B.影响血红蛋白与氧的结合,使血红蛋白失去携氧能力C.可引起肺癌D.导致慢性阻塞性肺部疾患E.对眼结膜和呼吸道黏膜具有刺激作用B(a)P
城市某单位干部区礼华退休后在郊区的老家建了一处宅院,在那里安度晚年。后来区礼华于2003年2月病逝,所建宅院由他的三个儿子区绍宽、区绍厚、区绍富继承。三兄弟在市区都有住房,就商量把郊区的宅院卖掉,龙家兄弟龙甲和龙乙愿意购买此房。于是,区家三兄弟与龙家两兄弟
违反《城市房地产开发经营管理条例》的有关规定,擅自转让房地产开发项目的,由县级以上人民政府负责土地管理工作的部门责令停止违法行为,没收违法所得,可以并处违法所得()倍以下的罚款。
太林公司2011年收入和费用的相关内容如下表所示,该公司所得税税率为25%。计算太林公司2011年下列项目的金额。营业成本()元。
关于银行存款日记账的登记方法,下列说法中正确的有()。
财产的所有权人对其财产所享有的权利不包括下列哪一个选项()。
口腔卫生较好的指标一般以有菌斑的牙面不超过总牙面数的()。
Mark:Idon’tknowaboutyou,butI’mfedupwiththiswetweather.Linda:______I’mjustlookingforsomesunshine.
最新回复
(
0
)