C语言问题急求高手啊(05,4,49.50)

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:46:59
(49)下列与函数 fseek(fp,0L,SEEK_SET)有相同作用的是( )。
A)feof(fp) B)ftell(fp)
C)fgetc(fp) D)rewind(fp)

(50)有下列程序:
#include <stdio.h>
void WriteStr(char *fn,char *str)
{ FILE *fp;
fp=fopen(fn,"w"); fputs(str,fp); fclose(fp);
}
main( )
{ WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件 t1.dat中的内容是( ) 。
A)start B)end
C)startend D)endrt
答案是D,B,完全不明白,请详细讲解,重谢

第一个问题.因为fseek( fp, OL, SEEK_SET );是一个打开文件时指向开头的位置指示器.主要是SEEK_SEK表明了是从头开始读起.为什么会选D呢.因为rewind( );是一个无条件的指向文件开头.而上面的fseek可以指向开头,中间,结尾三种情况.但rewind只有一种情况.那就是开头.所以选D.

第二个问题.因为打开方式是W.而W可以覆盖上次的内容.所以字符是最后一次输出的值.