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

单选题
有如下定义: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项中,因为函数fwrite中第三个参数为1,即每次写入1个结构体数据,x是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去。答案选择A选项。

相关考题:

单选题在C语言中,正确的用户标识符是()A3fB_forCstructD_f.5

单选题有以下程序:#includemain(){ charc; while((c=getchar())!='') {  switch(c-'2')  {   case0:   case1:putchar(c+4);   case2:putchar(c+4);break;   case3:putchar(c+3);   default:putchar(c+2);break;  } } printf();}程序运行后从第一列开始输入以下数据:2473回车程序的输出结果是(  )。A668977B4444C6677877D68766

单选题有以下程序段:scanf(%d%d%d,a,b,c);if(ab)a=b;if(ac)a=c;printf(%d,a);该程序段的功能是(  )。A输出a、b、c中的最小值B输出a、b、c中的最大值C输出a的原始值D输出a、b、c中值相等的数值

单选题下列叙述中,不属于设计准则的是(  )。A提高模块独立性B使模块的作用域在该模块的控制域中C设计成多入口、多出口模块D设计功能可预测的模块

单选题下列叙述中正确的是(  )。A为了建立一个关系,首先要构造数据的逻辑关系B表示关系的二维表中各元组的每一个分量还可以分成若干数据项C一个关系的属性名表称为关系模式D一个关系可以包括多个二维表

单选题有以下程序:#include void fun(int *x,int s,int n){ int i; for(i=s;i=n;i--)  *(x+i+3)=*(x+i);}main(){ int m[]={0,1,2,3,4,5,6,7,8,9},k; fun(m,10-4,3); for(k=0;k  printf("%d",m[k]);}程序的运行结果是(  )。A0123456345B0123453456C0123456666D0123454569

单选题将E-R图转换为关系模式时,实体和联系都可以表示为(  )。A属性B键C关系D域

单选题有以下程序#include#defineSUB(X,Y)(X+1)*Ymain(){ inta=3,b=4; printf(%d,SUB(a++,b++));}程序运行后的输出结果是(  )。A20B16C12D25

单选题有以下程序:#include main(){ int i,j,k,a=5,b=6; i=(a==b)?++a:--b; j=a++;k=b;printf(%d,%d,%d,i,j,k);}程序的运行结果是(  )。A7,6,5B5,5,5C7,5,5D5,6,5