fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),SEEK_END) ;
fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/
fclose(fp);
printf("%d\n",b) ;
}
执行后输出结果是( )。
A. 2 B. 1
C. 4 D. 3
【答案】D
【考点解析】for循环语句中利用函数fwrite将4个整数写到文件data.dat中,然后用fseek函数将文件位置指针从文件尾向前移动4个字节,即指向了第三个整数3,再利用fread函数读取一个整型变量到b,所以b的值为3。
【例11】(2004年9月)有如下程序
#include
main()
{ FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为( )。
A. goodabc B. abcd
C. abc D. abcgood
【答案】C
【考点解析】fopen函数中文件的使用方式是“w”,表示如果原来不存在这文件就打开时建立一个以指定名字命名的文件,如果以存在一个以该名字命名的文件,就在打开时将该文件删除,然后建立一个新的,所以答案选C。