有以下程序 #include main() { FILE *fp; int a[10]={1,2,3,0,0}, i; fp = fopen("d2.dat", "wb"); fwrite(a, sizeof(int), 5, fp); fwrite(a

admin2015-07-28  31

问题 有以下程序
#include
main()
{ FILE *fp;
int a[10]={1,2,3,0,0}, i;
fp = fopen("d2.dat", "wb");
fwrite(a, sizeof(int), 5, fp);
fwrite(a, sizeof(int), 5, fp);
fclose(fp);
fp = fopen("d2.dat", "rb");
fread(a, sizeof(int), 10, fp);
fclose(fp);
for (i=0; i<10; i++)
printf("%d,", a);
}
程序的运行结果是( )。

选项 A、1,2,3,0,0,1,2,3,0,0,
B、1,2,3,1,2,3,0,0,0,0,
C、123,0,0,0,0,123,0,0,0,0,
D、1,2,3,0,0,0,0,0,0,0,

答案A

解析 该程序段的作用是把字符数组a中的数据用fwrite写入到文件d2.dat中并用数组a记录读出数据。由于写入时文件指针会随着数据流的写入而移动,所以执行两次"fwrite(a, sizeof(int), 5, fp);"语句的结果是把数组a的前五个元素写入了两遍,所以输出数组a中的数据为选项A)。
转载请注明原文地址:https://jikaoti.com/ti/5Fn0FFFM
0

最新回复(0)