C语言二级上机题考链表和文件吗?

会考,会在改错题中涉及链表和文件。

例如:

#include <stdio.h>

#include <stdlib.h>

#define N 8

typedef struct

{

char num[10];

double s[N];

double ave;

} STREC;

int main(void)

{

STREC stu;

int i;

void fun();

FILE *fp;

if((fp=fopen("39test61.dat","r"))==NULL)//

{

printf("File open error!\n");

exit(0);

}

fscanf(fp, "%s",stu.num);

for(i=0; i<N; i++)

fscanf(fp, "%lf", &stu.s[i]);//

fclose(fp);

fun(&stu);//

printf("The %s's student data:\n", stu.num);

for(i=0;i<N;i++)

printf("%4.1f\n",stu.s[i]);

printf("\nave=%7.3f\n", stu.ave);

return(0);

}

void fun(STREC *p)//

{

int i;

p->ave=0.0;//

for(i=0;i<N;i++)

p->ave=p->ave+p->s[i];

p->ave=p->ave/N;

}

链表(Linked list)是一种常见的基础数据结构,是一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括存储数据元素的数据域和存储下一个结点地址的指针域两个部分。 相比于线性表顺序结构,操作复杂。数据元素的逻辑顺序也是通过链表中的指针链接次序实现的。