c语言题目 求详解
1.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#i...
1.有以下程序(提示:程序中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.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 展开
#include <stdio.h>
main( )
{
FILE *fp; int i,a[4]={1,2,3,4},b;
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 展开
2个回答
展开全部
#include <stdio.h>
void main( )
{
FILE *fp; int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); //for循环执行共四次
//分别将a[0],a[1],a[2],a[3]输入到fp所指向位置中,又由于数组为int型,所以每个数据也要sizeof(int)共2个字节。
//写入完结束后,共向该data文件写入了8字节的数据
fclose(fp); //关闭文件
fp=fopen("data.dat ","rb"); //打开刚才已经写入的文件
fseek(fp,-2L*sizeof(int),SEEK_END) //这个题目已经给出了前提,从将位置指针从文件末尾开始,往前移动-2L*sizeof(int)也就是4个字节
//因此移动后,位置指针指向了之前写入的a[2]的位置
fread(&b,sizeof(int),1,fp); /*从文件中读取sizeof(int)字节的数据到变量b中*/
//从fp所指位置读入 sizeof(int)也就是2字节的数据,也就是将原先a[2]这个数据读出赋给b这个变量
//于是b的值变为了原先a[2]写入文件的值,也就是3
fclose(fp); //关闭文件
printf("%d\n",b); //输出b,并且换行
}
//执行后输出结果是
//A)2 B)1 C)4 D)3
所以选D,不懂可以再问我。
void main( )
{
FILE *fp; int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); //for循环执行共四次
//分别将a[0],a[1],a[2],a[3]输入到fp所指向位置中,又由于数组为int型,所以每个数据也要sizeof(int)共2个字节。
//写入完结束后,共向该data文件写入了8字节的数据
fclose(fp); //关闭文件
fp=fopen("data.dat ","rb"); //打开刚才已经写入的文件
fseek(fp,-2L*sizeof(int),SEEK_END) //这个题目已经给出了前提,从将位置指针从文件末尾开始,往前移动-2L*sizeof(int)也就是4个字节
//因此移动后,位置指针指向了之前写入的a[2]的位置
fread(&b,sizeof(int),1,fp); /*从文件中读取sizeof(int)字节的数据到变量b中*/
//从fp所指位置读入 sizeof(int)也就是2字节的数据,也就是将原先a[2]这个数据读出赋给b这个变量
//于是b的值变为了原先a[2]写入文件的值,也就是3
fclose(fp); //关闭文件
printf("%d\n",b); //输出b,并且换行
}
//执行后输出结果是
//A)2 B)1 C)4 D)3
所以选D,不懂可以再问我。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询