云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 全国计算机等级考试二级C语言资料(机试) - 图文

全国计算机等级考试二级C语言资料(机试) - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 4:30:54

int s; } STREC;

void fun( STREC a[] ) { }

main()

{ STREC s[N]={{\ {\ {\ {\ int i;FILE *out ; fun( s );

printf(\ for(i=0;i

{ if( (i)%4==0 )printf(\

printf(\ }

printf(\

out = fopen(\ for(i=0;i

{ if( (i)%4==0 && i) fprintf(out, \ fprintf(out, \ }

fprintf(out,\ fclose(out) ; }

【参考答案】

int fun (STREC a[]) { int i,j; STREC t;

for(i=0;i

{ t=a[i]; /*按分数的高低排列学生的记录,高分在前*/

a[i]=a[j]; a[j]=t; }

}

? 题型三:链表

3、N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。

例如,若学生的成绩是:85,76,69,85,91,72,64,87, 则平均分应当是:78.625。

#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(sizeof(STREC));p->s=0; while(i

{ q=(STREC*)malloc(sizeof(STREC)); q->s=s[i]; i++; p->next=q; p=q; }

p->next=0; return h; }

共 30 页

outlist( STREC *h) { STREC *p;

p=h->next; printf(\

do /*该循环顺序访问各节点数据域的值,输出各成绩*/ { printf(\p=p->next; } while(p!=0); printf(\}

main()

{ double s[N]={85,76,69,85,91,72,64,87},ave; void

STREC *h;

h=creat( s ); outlist(h); ave=fun( h );

printf(\}

【参考答案】

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; /*返回平均值*/ }

【解题思路】(1)本题是考查链表问题,所以,一定要弄清表示初始指针变量p指向下一个\节点\的方法及表示结束的判断。 (2)因为\头结点\中没有数值,所以程序中让p直接指向\头节点\的下一个节点,使用语句STREC *p=h->next,当然也可将p一开始指向\头节点\,即STREC *p=h,

第 30 页 然后再p=p->next。

共 30 页

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

int s; } STREC; void fun( STREC a[] ) { } main() { STREC s[N]={{\ {\ {\ {\ int i;FILE *out ; fun( s ); printf(\ for(i=0;i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com