华南农业大学C语言程序设计实验指导书参考答案 下载本文

[提示] 在提交前要测试自己的代码是否正确,可在源文件所有目录自己创建一个名为data1.in 的文本文

件,在文件中自己打入一些字母,以便测试自己的代码是否正确

[题目1106:文本文件操作_字符写入]

由键盘输入任意个字符 以连着的三个小写字符bye 做为结束标志),将所有字符 包括bye ),写

入新建的文件answer.txt 中 注:文件放在当前目录)。请完成该功能, (如键盘输入内容如下) He, can you write the code? Yes, you can.bye

(程序执行后,在文件answer.txt 中内容如下) He, can you write the code? Yes, you can.bye 参考程序:

#include \main()

{ FILE *fp;

char ch, ch1=' ', ch2=' ', ch3=' ';

if((fp=fopen(\return 1;

while((ch=getchar())!=EOF) { fputc(ch, fp);

ch1=ch2;ch2=ch3;ch3=ch;

if (ch1=='b'&&ch2=='y'&&ch3=='e') break; }

fclose(fp); }

[题目1107:文本文件操作_单词的排序] 在当前目录有文件“data1.in”,文件里存放有多个 总个数不超过10000 个)英文单词 每个英文单

词不会超过10 个字文字符),每行一个,单词未排序。现要求,将文件中的所有单词按字典顺序排序,

后将排序好的单词写入新建的文件answer.txt 中 注:文件存放于当前目录)。请完成程序,实现该功

能,

(如data1.in 文件中原内容如下) hello bye

yes

(程序执行后,在文件answer.txt 中内容如下) bye hello yes

参考程序:

#include \#include \main()

{ FILE *fp1,*fp2; char str[1000][11],str1[11]; int n=0,i,j;

if((fp1=fopen(\return 0;

if((fp2=fopen(\return 0;

while(fscanf(fp1,\

n++;

for(i=0;i

if(strcmp(str[i],str[j])>0) {

strcpy(str1,str[i]); strcpy(str[i],str[j]); strcpy(str[j],str1); }; }

for(i=0;i

fprintf(fp2,\fclose(fp1); fclose(fp2); }