全国青少年软件编程等级考试C语言经典程序题99-100
【程序99】
题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),
输出到一个新文件C中。
1.程序分析:
2.程序源代码:
#include “stdio.h”
main()
{ FILE *fp;
int i,j,n,ni;
char c[160],t,ch;
if((fp=fopen(“A”,”r”))==NULL)
{printf(“file A cannot be openedn”);
exit(0);}
printf(“n A contents are :n”);
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{c[i]=ch;
putchar(c[i]);
}
fclose(fp);
ni=i;
if((fp=fopen(“B”,”r”))==NULL)
{printf(“file B cannot be openedn”);
exit(0);}
printf(“n B contents are :n”);
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{c[i]=ch;
putchar(c[i]);
}
fclose(fp);
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(“n C file is:n”);
fp=fopen(“C”,”w”);
for(i=0;i<n;i++)
{ putc(c[i],fp);
putchar(c[i]);
}
fclose(fp);
}
==============================================================
【程序100】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生 ,姓名,三门课成绩),计算出
平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件”stud”中。
1.程序分析:
2.程序源代码:
#include “stdio.h”
struct student
{ char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
main()
{int i,j,sum;
FILE *fp;
/*input*/
for(i=0;i<5;i++)
{ printf(“n please input No. %d score:n”,i);
printf(“stuNo:”);
scanf(“%s”,stu[i].num);
printf(“name:”);
scanf(“%s”,stu[i].name);
sum=0;
for(j=0;j<3;j++)
{ printf(“score %d.”,j+1);
scanf(“%d”,&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].avr=sum/3.0;
}
fp=fopen(“stud”,”w”);
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf(“file write errorn”);
fclose(fp);
}
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!