填空题 给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#include<stdlib.h>
void fun(char*s,int a,double f)
{
/**********found**********/
1fp;
char str[100],str1[100],str2[100];
int a1;double f1;
fp=fopen("file1.txt","W");
fprintf(fp,"%s %d %f/n",s,a,f);
/**********found**********/
2;
fp=fopen("filel.txt","r");
/**********found**********/
fscanf( 3,"%s%s%s",str,str1,str2);
fclose(fp);
a1=atoi(str1);
f1=atof(str2);
printf("/nThe result:/n/n%s %d %f/n",str,a1,f1);
}
main()
{char a[10]="Hello!";int b=12345;
double c=98.76;
fun(a,b,c);
}
【正确答案】
【答案解析】(1)FILE* (2)fclose(fp) (3)fp [解析] 填空1:从使用fp=fopen("file1.txt","w")可知fp应该是文件类型指针,因此本空因该填写FILE*。
填空2:当对fp作打开操作的时候,并进行不同的操作前,应该对其关闭,因为在第一次打开时是对fp进行写操作,而在第二次打开后进行的是读操作,因此应该先对fp进行关闭,本空填fclose(fp)。
填空3:fscanf()是把文本文件输出,因此本空只能填写fp。