计算机二级C语言上机考试——结构体与链表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1:某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数

中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

void fun(STREC *a)

{int i;a->ave=0.0;for(i=0;iave=a->ave+a->s[i];a->ave

=a->ave/N;}

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

编写函数fun,其功能是:求出平均分,并由函数值返回。double fun(STREC *h) {double av=0.0;

STREC *p=h->next;while(p!=NULL){ av=av+p->s;p=p->next;}return

av/N;}

3:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编

写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学

生可能不止一个,函数返回分数最高的学生的人数。int fun (STREC *a, STREC *b)

{int i,j=0,max=a[0].s;for(i=0;i

for(i=0;i

4:学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写

函数fun,

其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,

在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。。 STREC

fun(STREC *a, char *b)

{int i;STREC str={"\0",-1};if(strcmp(a[i].num,b)==0) str=a[i];return str;}

5:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编

写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。void fun (STREC a[])

{int i,j;STREC t;for(i=1;i

+1].s)

{t=a[j];a[j]=a[j+1];a[j+1]=t;}}

6:学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编

写函数fun,

其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数

通过形参n传回,

平均分通过函数值返回。

double fun (STREC *a,STREC *b, int *n) {int i;double av=0.0;*n=0;for(i

=0;i

av=av+a[i].s;av=av/N;for(i=0;i

*n=*n+1;}return av;}

7:N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点请

编写函数fun其功能是:找出学生的最高分,并由函数值返回。

double fun(STREC *h){double max=h->s;while(h!=NULL)

{ if(maxs) max=h->s; h=h->next;}return max;}

8:学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写

函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,

int fun(STREC *a,STREC *b) {int i,j=0,n=0,min;min=a[0].s;

for(i=0;i

if(a[i].s==min) { *(b+j)=a[i];j++;n++;} return n;}

9:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编写

fun ,功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过

形参n传回,平均分通过函数值返回。 double fun(STREC *a, STREC *b, int *n) {int

i,j=0;double av=0.0; for(i=0;i

av=av+a[i].s;av=av/N;for(i=0;i

*n=j;return av;}

10:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请

编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内

的学生人数由函数值返回

int fun (STREC *a, STREC *b, int l, int h )

{int i,j=0;for(i=0;i=l&&a[i].s<=h) b[j++]=a[i];return j;}

11:已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编

写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数

fun(STU a[], STU *s){int i;*s=a[0];for(i=0;is>a[i].s) *s=a[i];}

12已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写

函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数

fun(STU a[], STU *s) {int i;*s=a[0];for(i=0;is

杂题

1.编写函数fun,其功能是:根据以下公式求pi的值(要求精度0.0005,即某项小于0.0005

时停止迭代).

double s=1.0,s1=1.0;int n=1;while(s1>=eps) {s1=s1*n/(2*n+1); s=s+s1; n++;}return

2*s;

2请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下

标从0---p的数组元素平移到数组的最后。

int x,j,ch; for(x=0;x<=p;x++){ch=w[0];for(j=1;j

{w[j-1]=w[j];}w[n-1]=ch; }

3请编写函数fun,该函数的功能是:移动字符串中的内容,移动的规则是把第1—m个字符,

平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

int i,j; char t;

for(i=1;i<=m;i++) {t=w[0]; for(j=1;w[j]!='\0';j++) w[j-1]=w[j];w[j-1]=t; }

4请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组

中的数已按从小到大的顺序排列,函数返回删除后数组中数据的个数。

int i,j=1; for(i=1;i

5请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将

字符串转换为整数的函数)

long n=0;int flag=1;if(*p=='-') {p++;flag= -1;}else if(*p=='+') p++;

while(*p!='\0') {n=n*10+*p-'0'; p++; } return n*flag;

相关文档
最新文档