问题 单项选择题

有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2 * sizeof(int)字节):
#include <stdio.h>
main()
FILE *fp; int i, a[4]=1,2,3,4,b;
fp=fopen("data.dar","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dar","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

解析: Leek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节,调用此函数后指针指向a[2],fread(&b,sizeof(int),1,fp)是从文件中读取sizeof(int)字节的数据到变量b中,也就是从文件中读取数据3到变量b中。

单项选择题 A3/A4型题
单项选择题