C语言题库第8章 结构体和共同体文档格式.docx

上传人:b****1 文档编号:15334350 上传时间:2022-10-29 格式:DOCX 页数:34 大小:33.72KB
下载 相关 举报
C语言题库第8章 结构体和共同体文档格式.docx_第1页
第1页 / 共34页
C语言题库第8章 结构体和共同体文档格式.docx_第2页
第2页 / 共34页
C语言题库第8章 结构体和共同体文档格式.docx_第3页
第3页 / 共34页
C语言题库第8章 结构体和共同体文档格式.docx_第4页
第4页 / 共34页
C语言题库第8章 结构体和共同体文档格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言题库第8章 结构体和共同体文档格式.docx

《C语言题库第8章 结构体和共同体文档格式.docx》由会员分享,可在线阅读,更多相关《C语言题库第8章 结构体和共同体文档格式.docx(34页珍藏版)》请在冰豆网上搜索。

C语言题库第8章 结构体和共同体文档格式.docx

}cnum[2]={1,3,2,7};

printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);

return0;

}

二、程序设计

1./*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,

它的功能是:

按分数的高低排列学生的记录,高分在前。

注意:

部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

*/

#include<

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

voidfun(STRECa[])

/*********Begin*********/

/*********End**********/

intmain()

FILE*wf,*in;

STRECs[N]={{"

GA005"

85},{"

GA003"

76},{"

GA002"

69},{"

GA004"

85},

{"

GA001"

91},{"

GA007"

72},{"

GA008"

64},{"

GA006"

87},

GA015"

GA013"

GA012"

GA014"

91},

GA011"

66},{"

GA017"

GA018"

GA016"

72}};

inti;

fun(s);

printf("

Thedataaftersorted:

\n"

);

for(i=0;

i<

N;

i++)

%s%4d\n"

s[i].num,s[i].s);

/******************************/

in=fopen("

in001.dat"

"

r"

i=0;

while(!

feof(in))

{

fscanf(in,"

%s%d"

s[i].num,&

s[i].s);

i++;

}

fun(s);

wf=fopen("

out.dat"

w"

fprintf(wf,"

fclose(wf);

fclose(in);

/*****************************/

return0;

【参考代码】

inti,j;

STRECt;

for(i=0;

i<

i++)

for(j=0;

j<

N-1-i;

j++)

if(a[j].s<

a[j+1].s)

{t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

2./*某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩已在主函数中给出。

请编写fun函数,它的功能是:

求出该学生的平均分放在记录的ave成员中。

请自己定义正确的形参。

例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。

注意:

#defineN8

doubles[N];

doubleave;

}STREC;

voidfun(STREC*p)

/************Begin*************/

/************End**************/

intmain()

{

STRECs={"

GA005"

85.5,76,69.5,85,91,72,64.5,87.5};

fun(&

s);

The%s'

sstudentdata:

s.num);

/*输出学号*/

i++)

%4.1f\n"

s.s[i]);

/*输出各科成绩*/

\nave=%7.3f\n"

s.ave);

/*输出平均分*/

in24.dat"

out24.dat"

%s\n"

s.num);

8;

%lf\n"

&

s.s[i]);

ave=%7.3f\n"

inti;

p->

ave=0.0;

for(i=0;

p->

ave=p->

ave+p->

s[i];

/*求各门成绩的总和*/

ave/N;

/*求平均分*/

3./*N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,它的功能是:

求出平均分,由函数值返回。

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

*/

#include<

stdlib.h>

structslist

{doubles;

structslist*next;

};

typedefstructslistSTREC;

doublefun(STREC*h)

/***********Begin***************/

/***********End**************/

STREC*creat(double*s)/*创建链表*/

STREC*h,*p,*q;

inti=0;

h=p=(STREC*)malloc(sizeof(STREC));

s=0;

while(i<

N)

{q=(STREC*)malloc(sizeof(STREC));

q->

s=s[i];

i++;

next=q;

p=q;

next=0;

returnh;

outlist(STREC*h)

STREC*p;

p=h->

next;

head"

do

{printf("

->

%4.1f"

p->

p=p->

/*输出各成绩*/

while(p!

=NULL);

\n\n"

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

STREC*h;

h=creat(s);

outlist(h);

ave=fun(h);

ave=%6.3f\n"

ave);

in25.dat"

%d\n"

s[i]);

h=creat(s);

out25.dat"

%6.3f\n"

doubleav=0.0;

STREC*p=h->

/*p直接指向"

头节点"

的下一个节点,即第一个成绩*/

=NULL)

{av=av+p->

s;

/*求总分数*/

}

returnav/N;

/*返回平均值*/

4./*已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。

请编写函数fun,

该函数的功能是:

找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。

已给出函数的首部,请完成该函数。

*/

string.h>

#defineN10

typedefstructss

ints;

}STU;

fun(STUa[],STU*s)

/***********Begin**************/

STUa[N]={{"

A01"

81},{"

A02"

89},{"

A03"

66},{"

A04"

87},{"

A05"

77},

{"

A06"

90},{"

A07"

79},{"

A08"

61},{"

A09"

80},{"

A10"

71}},m;

*****Theoriginaldata*****\n"

No=%sMark=%d\n"

a[i].num,a[i].s);

fun(a,&

m);

*****THERESULT*****\n"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1