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
展开
 我来答
rhythmkay
2012-03-21 · TA获得超过362个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:152万
展开全部
#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,不懂可以再问我。
玩转嵌入式
2012-03-21 · TA获得超过4340个赞
知道大有可为答主
回答量:1160
采纳率:100%
帮助的人:989万
展开全部
VC++6.0运行出来的结果是3
选D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式