C语言程序设计

单选题有如下定义:struct st{ int a; float b;}x[10];FILE *fp;若文件已正确打开,且数组x的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是(  )。A for(i=0; i<10; i++) fwrite(x,sizeof(struct st), 1,fp);B fwrite(x,10*sizeof(struct st), 1,fp);C fwrite(x,sizeof(struct st), 10,fp);D for(i=0; i<10; i++) fw

题目
单选题
有如下定义:struct st{ int a; float b;}x[10];FILE *fp;若文件已正确打开,且数组x的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是(  )。
A

for(i=0; i<10; i++) fwrite(x,sizeof(struct st), 1,fp);

B

fwrite(x,10*sizeof(struct st), 1,fp);

C

fwrite(x,sizeof(struct st), 10,fp);

D

for(i=0; i<10; i++) fwrite(&x[i],sizeof(struct st), 1,fp);

参考答案和解析
正确答案: A
解析:
A项中,因为函数fwrite中第三个参数为1,即每次写入1个结构体数据,x是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去。答案选择A选项。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案