设有如下定义和语句:  FILE *fp;  int data[10],i,n;  fp=fopen("abc.txt","r");  文本文件abc.txt中的数据为:5 81 92 76 51 90,其中第1个数据代表的是它后面数据的个数。若文件已正确

admin2022-10-24  32

问题 设有如下定义和语句:
 FILE *fp;
 int data[10],i,n;
 fp=fopen("abc.txt","r");
 文本文件abc.txt中的数据为:5 81 92 76 51 90,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入到数组data[0]~data[4]中的是(          )。

选项 A、fscanf(fp,"%d",&n);
 for(i=0;i<n;i++)
 fscanf(fp,"%d",&data);
B、i=0;
 while(!feof(fp))
 {
 fscanf(fp,"%d",&data);
 i++;
 }
C、for(i=0;!feof(fp);i++)
 fscanf(fp,"%d",&data);
D、i=0;
 fscanf(fp,"%d",&n);
 i++;
 while(!feof(fp))
 {
 fscanf(fp,“%d”,&data);
 i++;
 }

答案A

解析 由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0-n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/4Jkp777K
0

相关试题推荐
最新回复(0)