习题
3
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char str[100];
int i=0;
if((fp=fopen("al","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("input a string:\n");
gets(str);
while(str[i] != '!')
{
if((str[i] >'a') && (str[i] < 'z'))
{
str[i] = str[i] -32;
}
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("al","r");
fgets(str,strlen(str)+1,fp);
printf("%s\n",str);
fclose(fp);
return 0;
}
4、(有问题)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp1,*fp2,*fp;
int i=0;
char str1[100],str2[100];
if((fp1=fopen("a1","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
if((fp2=fopen("b1","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("input a string1:\n");
gets(str1);
while(str1[i]!= '\0')
{
if((str1[i]>='a') && (str1[i]<='z'))
{putc(str1[i],fp1);}
i++;
}
fclose(fp1);
printf("input a string2:\n");
gets(str2);
i=0;
while(str2[i] !='\0')
{
if((str2[i]>='a') && (str2[i]<='z'))
{putc(str2[i],fp2);}
i++;
}
fclose(fp2);
/*i=0;
while( str1[i] != '!')
{
if((str1[i]>='a')&& (str1[i]<='z'))
{
str2[i] = str1[i] -32;
}
fputc(str2[i],fp2);
i++;
}
i=0;
fclose(fp2);*/
int j,n,i1;
char c[100],t,ch;
/*if((fp1=fopen("a1","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}*/
fp1 = fopen("a1","r");
printf("file A:\n");
for(i=0;ch=fgetc(fp1)!=EOF;i++)
{
c[i] = ch;
putchar(c[i]);
}
fclose(fp1);
i1=i;
/*if((fp2=fopen("b1","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}*/
fp2=fopen("b1","r");
printf("\nfile B:\n");
for(i=i1;(ch=fgetc(fp2)) !=EOF;i++)
{
c[i] = ch;
putchar(c[i]);
}
fclose(fp2);
n=i;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(c[i]>c[j])
{
t=c[i];c[i] = c[j];c[j]=t;
}
}
}
printf("\nfile C:\n");
fp=fopen("c1","w");
for(i=0;i<n;i++)
{
fputc(c[i],fp);
putchar(c[i]);
}
printf("\n");
fclose(fp);
return 0;
}
5,
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
int num;
char name[10];
int score[3];
float ave;
}stu[2];
int main()
{
int i,j,sum;
FILE *fp;
if((fp=fopen("stud","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
for(i=0;i<2;i++)
{
sum=0;
printf("请输入学号:");
scanf("%d",&stu[i].num);
printf("请输入姓名:") ;
scanf("%s",stu[i].name);
printf("请输入三门课成绩:");
scanf("%d,%d,%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].ave = sum/3;
}
for(i=0;i<2;i++)
{
if(fwrite(&stu[i],sizeof(struct Student),1,fp) !=1)
{
printf("file write error\n");
}
}
fclose(fp);
fopen("stud","r");
for(i=0;i<2;i++)
{
fread(&stu[i],sizeof(struct Student),1,fp);
printf("\n%d,%s,%d,%d,%d,%.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2] ,stu[i].ave );
}
return 0;
}
6
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
int num;
char name[10];
int score[3];
float ave;
}stu[2],temp;
int main()
{
int i,j,sum;
FILE *fp;
if((fp=fopen("stud","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
for(i=0;i<2;i++)
{
sum=0;
printf("请输入学号:");
scanf("%d",&stu[i].num);
printf("请输入姓名:") ;
scanf("%s",stu[i].name);
printf("请输入三门课成绩:");
scanf("%d,%d,%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].ave = sum/3;
}
for(i=0;i<2;i++)
{
if(fwrite(&stu[i],sizeof(struct Student),1,fp) !=1)
{
printf("file write error\n");
}
}
fclose(fp);
printf("formal:\n");
fopen("stud","r");
for(i=0;i<2;i++)
{
fread(&stu[i],sizeof(struct Student),1,fp);
printf("\n%d,%s,%d,%d,%d,%.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2] ,stu[i].ave );
}
printf("\n");
//排序 选择法
for(i=0;i<2;i++)
{
for(j=1;j<2;j++)
{
if(stu[i].ave<stu[j].ave)
{
temp=stu[i];
stu[i] =stu[j];
stu[j] =temp;
}
}
}
printf("Now:\n");
fp=fopen("stu_sort","w");
for(i=0;i<2;i++)
{
fwrite(&stu[i],sizeof(struct Student),1,fp);
printf("\n%d,%s,%d,%d,%d,%.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2] ,stu[i].ave );
}
printf("\n");
fclose(fp);
return 0;
}
有点问题
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
int num;
char name[10];
int score[3];
float ave;
}stu[2],temp,s;
int main()
{ FILE *fp,*fp1;
int i,j,sum;
//插入的学生数据
printf("请输入插入的学生学号:");
scanf("%d",s.num);
printf("请输入插入的学生姓名:");
scanf("%s",s.name);
printf("请输入插入的学生的三门课成绩:");
scanf("%d,%d,%d",&s.score[0],&s.score[1],&s.score[2]);
sum=s.score[0]+s.score[1]+s.score[2];
s.ave = sum/3;
sum=0;
//FILE *fp,*fp1;
if((fp=fopen("stud","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
for(i=0;i<2;i++)
{
sum=0;
printf("请输入学号:");
scanf("%d",&stu[i].num);
printf("请输入姓名:") ;
scanf("%s",stu[i].name);
printf("请输入三门课成绩:");
scanf("%d,%d,%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
stu[i].ave = sum/3;
}
for(i=0;i<2;i++)
{
if(fwrite(&stu[i],sizeof(struct Student),1,fp) !=1)
{
printf("file write error\n");
}
}
fclose(fp);
printf("formal:\n");
fopen("stud","r");
for(i=0;i<2;i++)
{
fread(&stu[i],sizeof(struct Student),1,fp);
printf("\n%d,%s,%d,%d,%d,%.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2] ,stu[i].ave );
}
printf("\n");
//排序 选择法
for(i=0;i<2;i++)
{
for(j=1;j<2;j++)
{
if(stu[i].ave<stu[j].ave)
{
temp=stu[i];
stu[i] =stu[j];
stu[j] =temp;
}
}
}
printf("Now:\n");
fp=fopen("stu_sort","w");
for(i=0;i<2;i++)
{
fwrite(&stu[i],sizeof(struct Student),1,fp);
printf("\n%d,%s,%d,%d,%d,%.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2] ,stu[i].ave );
}
printf("\n");
fp1=fopen("sort1.dat","w");
fwrite(&s,sizeof(struct Student),1,fp1);
printf("\n%d,%s,%d,%d,%d,%.2f\n",s.num,s.name,s.score[0],s.score[1],s.score[2] ,s.ave );
int t;
for( t=0;stu[t].ave>s.ave;t++);
for(i=t;i<2;i++)
{
fwrite(&stu[i],sizeof(struct Student),1,fp1);
printf("\n%d,%s,%d,%d,%d,%.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2] ,stu[i].ave );
}
printf("\n");
fclose(fp1);
fclose(fp);
return 0;
}
9
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LEN struct employee
struct employee
{
char num[6];
char name[10];
char sex[2];
int age;
char addr[200];
int salary;
char health[80];
char clas[100];
}em[10];
struct emp
{
char name[10];
int salary;
}em_case[10];
int main()
{
FILE *fp,*fp1,*fp2;
int i,j;
/*if((fp=fopen("employee","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}*/
//建立employee文件
printf("NO. name sex age addr salary health class\n");
for(i=0;i<2;i++)
{
scanf("%s %s %s %d %s %d %s %s",em[i].num,em[i].name,em[i].sex,&em[i].age,em[i].addr,&em[i].salary,em[i].health,em[i].clas );
}
//将数据写入文件
if((fp = fopen("employee","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
for(i=0;i<2;i++)
{
if(fwrite(&em[i],sizeof(LEN),1,fp) !=1)
{
printf("error\n");
}
}
fclose(fp);
if((fp=fopen("employee","r")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("\n\n");
printf("NO. name sex age addr salary health class\n");
for(i=0;fread(&em[i],sizeof(LEN),1,fp) !=0;i++)
{
printf("\n%4s%8s%4s%6d%10s%6d%10s%8s\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].addr,em[i].salary,em[i].health,em[i].clas );
strcpy(em_case[i].name,em[i].name);
em_case[i].salary=em[i].salary;
}
printf("\n\n****************************************************\n");
if((fp2=fopen("emp_salary","wb")) ==NULL)
{
printf("cannot open file\n");
exit(0);
}
for(j=0;j<2;j++)
{
if((fwrite(&em_case[j],sizeof(struct emp),1,fp2))!=1)
{
printf("error\n");
}
printf("\n%12s%10d",em_case[j].name,em_case[j].salary);
}
printf("\n****************************************************\n");
fclose(fp1);
fclose(fp2);
return 0;
}
10
//删去一个职工数据
int flag,n;
char name[10];
if((fp2=fopen("emp_salary","rb")) ==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("\noringal data:\n");
for(i=0;fread(&em_case[i],sizeof(struct emp),1,fp2)!=0;i++)
{
printf("\n %8s %7d",em_case[i].name,em_case[i].salary);
}
printf("\n");
fclose(fp2);
n=i;
printf("input name daleted:\n");
scanf("%s",name);
for(flag=1,i=0;flag&&i<n;i++)
{
if(strcmp(name,em_case[i].name)==0)
{
for(j=i;j<n;j++)
{
strcpy(em_case[j].name,em_case[j+1].name);
em_case[j].salary=em_case[j+1].salary;
}
flag=0;
}
}
if(!flag) n=n-1;
else printf("not found!");
printf("\nNOW,the content of file:\n");
for(j=0;j<n;j++)
{
if((fwrite(&em_case[j],sizeof(struct emp),1,fp2))!=1)
{
printf("error\n");
}
//printf("\n%12s%10d",em_case[j].name,em_case[j].salary);
}
fclose (fp2);
fp=fopen("emp_salary","r");
for(i=0;fread(&em_case[i],sizeof(struct emp),1,fp)!=0;i++)
{
printf("\n%8s %7d",em_case[i].name,em_case[i].salary);
}
printf("\n");
fclose(fp);
11
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
if((fp=fopen("a1","w")) == NULL)
{
printf("cannot open file\n");
exit(0);
}
char str[80],c;
int i,j,flag=1;
printf("请输入若干行字符:\n");
while(flag==1)
{
gets(str);
fprintf(fp,"%s",str);
printf("continue?");
c=getchar();
if(c =='n') flag=0;
getchar();
}
fclose(fp);
fp=fopen("a1","r");
while(fscanf(fp,"%s",str) != EOF)
{
for(i=0;str[i] !='\0';i++)
{
if((str[i]>='a') && (str[i] <='z')) str[i] =str[i]-32;
// printf("%s",str);
//printf("\n\n\n");
//printf("%c",str[i]);
}
printf("%s\n",str);
}
fclose(fp);
return 0;
}