简答题
👁️ 浏览量:

试题题干

下面程序是要建立一个文本文件data1,从键盘输入一个实数(正数表示收入,负数表示支出),用fwrite函数写入文件data1中,输入数字0则结束。

#include<stdio.h>

#include<stdlib.h>

main()

{ __________ /*第一空*/

  float a;

  if((fp=fopen("data1","w"))==NULL)

   { printf("can not open the file!");exit(0);}

   while(1)

   { scanf("%f",&a);

     ___________/*第二空*/

     ___________/*第三空*/

    }

  fclose(fp);

}

参考答案

试题解析

​在打开文件之前要先定义文件型指针,即第一空填入FILE *fp;

题干中提出,输入数字0结束,所以第二空是判断输入的实数是否为0,即第二空填入if(a==0) break;

函数fwrite()的函数首部为:int fwrite(void *buffer,int size,int count,FILE *fp)其中参数buffer 存放写入文件数据类型的起始地址,可以是存放数据的变量地址或数组首地址,也可以是指向某个变量或数组的指针变量。size 表示从文件写入文件的每个数据所占用的字节数,通常使用表达式sizeof(数据类型符)。 count 表示要写入文件的数据的个数。 fp 文件型指针,通过函数fopen()获得,指向一个已经打开的可写文件。题干中给出是输入一个实数,即count的值为1,size的值为sizeof(float), 所以第三空应填入fwrite(&a,sizeof(float),1,fp);