有以下程序: #include <stdio.h> main() { FILE *fp; int i; char ch[]="abcd",t; fp=fopen("abc.dat","wb+"); fo

admin2009-01-15  23

问题 有以下程序:    #include  <stdio.h>    main()    { FILE  *fp;  int i;      char ch[]="abcd",t;      fp=fopen("abc.dat","wb+");      for(i=0;i<4;i++)fwrite(&ch1,1,fp);      fseck(fp,-2L,SEEK_END) ;      fread(&t,1,1,fp);      felose(fp);      printf("%c\n",t);    }    程序执行后的输出结果是(  )。

选项 A、d
B、c
C、b
D、a

答案2

解析 程序首先定义了一个文件指针fp,并使用fopen()函数以"wb+"方式新建一个可读写文件"abe.dat"。然后使用一个for循环,循环变量i从0递增到3,在循环体中每次写入ch的值。所以循环结束时,文件中的内容应该为:abed。接下来程序使用fseek()函数,将文件的读写指针从文件末尾处向后退2个字节,文件末尾是最后一个输出字节的下一个字节,即下次写入数据的位置,所以此时文件读写指针指向的是字符’c’。最后调用ficadO函数从文件中读取1个字节到变量t中。所以最终输出应该为:c。故本题选B。
转载请注明原文地址:https://jikaoti.com/ti/d6K0FFFM
0

最新回复(0)