柠檬试题库
search
首页 计算机 公务员 驾照 关于

有以下程序 #include main() { FILE *fp; int i, a[6]={1,2,3,4,5,6},k; fp = fopen("data.dat", "w+"); fprintf(fp, "%d\n", a[0]); for (i=1; i<6; i++) { fseek(fp, 0L, 0); fscanf(fp, "%d", &k); fseek(fp, 0L, 0); fprintf(fp, "%d\n", a[i]+k); } rewind(fp); fscanf(fp, "%d", &k); fclose(fp); printf("%d\n", k); } 程序的运行结果是


  • A.21
  • B.6
  • C.123456
  • D.11
热度🔥796
参考答案:A
解析:

【解析】fopen函数以一定方式打开指定文件,返回一个指向文件的文件指针,如果不能实现打开指定文件的操作,则返回一个空指针NULL。fscanf函数从文本文件中按格式输入。fprintf函数按照格式向文本文件中输出数据。文件定位函数fseek,将指针由文件开头0、当前位置1、末尾2移动指定字节。rewind函数功能使文件的位置指针返回到文件头。程序执行过程为:以读/写方式建立一个新的文本文件data.dat,将1写入文件;执行for循环,将文件指针移到文件开头,将文件第一个数值1赋给k,再将指针移动到开头,向文件内输入a[i]+k=3。for循环实现将a数组中元素累加,结果21存放在文件中。调用rewind将文件指针移动到开头,调用fscanf函数从文件中读出数值赋予k=21,调用fclose函数关闭文件,打印k值,A选项正确。
复制题目向AI提问