3.
#include
#include
#include
int main()
{
char ch[100],sss[100];
FILE *fp;
printf("请输入一串字符!\n");
gets(ch);
int i=0;
if((fp=fopen("test.txt","w"))==NULL)
{
printf("打开文件出错");
exit(0);
}
while(ch[i]!='\0')
{
if(ch[i]>='a'&&ch[i]<='z')
ch[i]-=32;
fputc(ch[i],fp);
i++;
}
fclose(fp);
if((fp=fopen("test.txt","r"))==NULL)
{
printf("打开文件出错");
exit(0);
}
fgets(sss,strlen(ch)+1,fp);
printf("%s\n",sss);
fclose(fp);
return 0;
}
4.
#include
#include
int main()
{
FILE *fp;
if((fp=fopen("A.txt","r"))==NULL)
{
printf("不能打开A文件");
exit(0);
}
char ch,str[100],temp;
int i,j,n;
printf("文件A的内容为:\n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{
str[i]=ch;
printf("%c",ch);
}
fclose(fp);
if((fp=fopen("B.txt","r"))==NULL)
{
printf("不能打开B文件");
exit(0);
}
printf("\n文件B的内容为:\n");
for(;(ch=fgetc(fp))!=EOF;i++)
{
str[i]=ch;
printf("%c",ch);
}
fclose(fp);
n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(str[i]>str[j])
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
if((fp=fopen("C.txt","w"))==NULL)
{
printf("不能打开C文件");
exit(0);
}
printf("\n文件C的内容为:\n");
for(i=0;i<n;i++)
{
putc(str[i],fp);
printf("%c",str[i]);
}
fclose(fp);
return 0;
}
5,6,7,8
头文件及主函数
#include
#include
#define N 5
struct Stud
{
int id;
char name[20];
int score[3];
};
int main()
{
void perserve_stu(struct Stud student[]);
void sort_stu(struct Stud student[]);
void insert_stu_in();
void insert_stu_new();
struct Stud student[N];
int i;
printf("请输入学生数据\n");
for(i=0;i<N;i++)
{
scanf("%d %s %d %d %d",&student[i].id,student[i].name,&student[i].score[0],&student[i].score[1],&student[i].score[2]);
}
perserve_stu(student);
sort_stu(student);
insert_stu_new();
insert_stu_in();
return 0;
}
第五题函数
void perserve_stu(struct Stud student[])
{
FILE *fp;
if((fp=fopen("stud.dat","w"))==NULL)
{
printf("不能打开文件");
return;
}
int i;
for(i=0;i<N;i++)
{
if(fwrite(&student[i],sizeof(struct Stud),1,fp)!=1)
printf("写入出错");
}
fclose(fp);
printf("写入结果为:");
fp=fopen("stud.dat","r");
for(i=0;i<N;i++)
{
fread(&student[i],sizeof(struct Stud),1,fp);
printf("%d %s %d %d %d\n",student[i].id,student[i].name,student[i].score[0],student[i].score[1],student[i].score[2]);
}
}
第六题函数
void sort_stu(struct Stud student[])
{
int ave[N],i,j;
struct Stud temp;
for(i=0;i<N;i++)
{
ave[i]=0;
}
for(i=0;i<N;i++)
{
ave[i]=ave[i]+student[i].score[0]+student[i].score[1]+student[i].score[2];
ave[i]/=3;
}
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(ave[i]<ave[j])
{
temp=student[i];
student[i]=student[j];
student[j]=temp;
}
FILE *fp;
if((fp=fopen("stud_sort.dat","wb"))==NULL)
{
printf("不能打开文件");
return;
}
for(i=0;i<N;i++)
{
if(fwrite(&student[i],sizeof(struct Stud),1,fp)!=1)
printf("写入出错");
}
fclose(fp);
printf("排序后写入结果为:\n");
fp=fopen("stud_sort.dat","rb");
for(i=0;i<N;i++)
{
fread(&student[i],sizeof(struct Stud),1,fp);
printf("%d %s %d %d %d\n",student[i].id,student[i].name,student[i].score[0],student[i].score[1],student[i].score[2]);
}
}
第七题
void insert_stu_new()
{
struct Stud student[N],new_stu[N+1],temp;
int i,j,ave[N],tempAve;
FILE *fp;
printf("插入前的顺序为:\n");
fp=fopen("stud_sort.dat","rb");
for(i=0;i<N;i++)
{
fread(&student[i],sizeof(struct Stud),1,fp);
printf("%d %s %d %d %d\n",student[i].id,student[i].name,student[i].score[0],student[i].score[1],student[i].score[2]);
}
for(i=0;i<N;i++)
{
new_stu[i]=student[i];
}
for(i=0;i<N;i++)
{
ave[i]=0;
}
for(i=0;i<N;i++)
{
ave[i]=ave[i]+student[i].score[0]+student[i].score[1]+student[i].score[2];
ave[i]/=3;
}
printf("请输入插入学生的数据:\n");
scanf("%d %s %d %d %d",&temp.id,temp.name,&temp.score[0],&temp.score[1],&temp.score[2]);
tempAve=(temp.score[0]+temp.score[1]+temp.score[2])/3;
for(i=N-1;i>=0;i--)
{
if(ave[i]>tempAve)
{
for(j=N-1;j>i;j--)
{
new_stu[j+1]=new_stu[j];
}
new_stu[j+1]=temp;
break;
}
}
printf("插入后的顺序为\n");
fclose(fp);
if((fp=fopen("stud_new.dat","wb"))==NULL)
{
printf("不能打开文件");
return;
}
for(i=0;i<N+1;i++)
{
if(fwrite(&new_stu[i],sizeof(struct Stud),1,fp)!=1)
printf("写入出错");
}
fclose(fp);
printf("排序后写入新文件结果为:\n");
fp=fopen("stud_new.dat","rb");
for(i=0;i<N+1;i++)
{
fread(&new_stu[i],sizeof(struct Stud),1,fp);
printf("%d %s %d %d %d\n",new_stu[i].id,new_stu[i].name,new_stu[i].score[0],new_stu[i].score[1],new_stu[i].score[2]);
}
}
第八题函数
void insert_stu_in()
{
struct Stud student[N],new_stu[N+1],temp;
int i,j,ave[N],tempAve;
FILE *fp;
printf("插入前的顺序为:\n");
fp=fopen("stud_sort.dat","rb");
for(i=0;i<N;i++)
{
fread(&student[i],sizeof(struct Stud),1,fp);
printf("%d %s %d %d %d\n",student[i].id,student[i].name,student[i].score[0],student[i].score[1],student[i].score[2]);
}
for(i=0;i<N;i++)
{
new_stu[i]=student[i];
}
for(i=0;i<N;i++)
{
ave[i]=0;
}
for(i=0;i<N;i++)
{
ave[i]=ave[i]+student[i].score[0]+student[i].score[1]+student[i].score[2];
ave[i]/=3;
}
printf("请输入插入学生的数据:\n");
scanf("%d %s %d %d %d",&temp.id,temp.name,&temp.score[0],&temp.score[1],&temp.score[2]);
tempAve=(temp.score[0]+temp.score[1]+temp.score[2])/3;
for(i=N-1;i>=0;i--)
{
if(ave[i]>tempAve)
{
for(j=N-1;j>i;j--)
{
new_stu[j+1]=new_stu[j];
}
new_stu[j+1]=temp;
break;
}
}
printf("插入后的顺序为\n");
fclose(fp);
if((fp=fopen("stud_sort.dat","wb"))==NULL)
{
printf("不能打开文件");
return;
}
for(i=0;i<N+1;i++)
{
if(fwrite(&new_stu[i],sizeof(struct Stud),1,fp)!=1)
printf("写入出错");
}
fclose(fp);
printf("排序后写入结果为:\n");
fp=fopen("stud_sort.dat","rb");
for(i=0;i<N+1;i++)
{
fread(&new_stu[i],sizeof(struct Stud),1,fp);
printf("%d %s %d %d %d\n",new_stu[i].id,new_stu[i].name,new_stu[i].score[0],new_stu[i].score[1],new_stu[i].score[2]);
}
}
文件结构