C语言-习题10 文件操作

1. (0分) 从文件中读、写学生信息。

题目描述
1.一条学生的记录包括学号、姓名和成绩等信息。
(1)格式化输入多个学生记录;
(2)利用fwrite将学生信息按二进制方式写到文件中;
(3)利用fread从文件中读出成绩并求平均值;
(4)对文件中按成绩排序,将成绩单写入文本文件中.

用户代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct student
{
	int num;
	char name[30];
	float score;
}STU;
int main()
{
	int i,j;
	STU a[5]={{01,"张三",89},{02,"李四",56},{03,"王五",98},{04,"虎牙",56},{05,"合计数",45}},b[5],t;
	float sum=0;
	FILE *fp;
	if((fp=fopen("F:\\text.dat","w+"))==NULL)
		exit(0);
	fwrite(a,sizeof(STU),5,fp);
	fread(b,sizeof(STU),5,fp);
	for(i=0;i<5;i++)
	{
		sum+=b[i].score;
		printf("%10d%10s%10.2f\n",&b[i].num,&b[i].name,&b[i].score);
	}
	sum/=5;
	printf("平均分为:%.2f",sum);
	for(i=0;i<4;i++)
	{
		for(j=0;j<5-i;j++)
			if(b[i].score<b[i+1].score)
			{
				t.num=b[i].num;
				b[i].num=b[i+1].num;
				b[i+1].num=t.num;
				t.score=b[i].score;
				b[i].score=b[i+1].score;
				b[i+1].score=t.score;
				strcpy(t.name,b[i].name);
				strcpy(b[i].name,b[i+1].name);
				strcpy(b[i+1].name,t.name);
			}
	}
	if((fp=fopen("F:\\text.txt","w+"))==NULL)
		exit(0);
	fwrite(b,sizeof(STU),5,fp);
	return 0;
}

2. (0分) 查找文件中某单词的个数

题目描述
编写函数实现单词的查找,对于已打开文本文件,统计其中包含某单词的个数。

用户代码

#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE *fp;
	char a[10],b;
	int i,n=0;
	if((fp=fopen("txt.dat","r+"))==NULL)
		exit(0);
	while(!feof(fp))
	{
		b=fgetc(fp);
		
		for(i=0;i<10;fseek(fp,sizeof(char),1))
		{
			if(b==a[i])
				i++;
		}
	    n++;
	}
	printf("%d",&n);
	return 0;
}

3. (0分) 编写程序统计某文本文件中包含句子的个数。

题目描述
编写程序统计某文本文件中包含句子的个数。

用户代码

#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE *fp;
	char a[10],b;
	int i,n=0;
	if((fp=fopen("txt.dat","r+"))==NULL)
		exit(0);
	while(!feof(fp))
	{
		b=fgetc(fp);
		
		if(b=='\n')
	       n++;
		fseek(fp,sizeof(char),1);
	}
	printf("%d",&n);
	return 0;
}
发布了37 篇原创文章 · 获赞 10 · 访问量 737

猜你喜欢

转载自blog.csdn.net/qq_43608850/article/details/104320809