填空题
给定程序中,函数fun的功能是:将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
void fun(char *s, int a, double f)
{
/**********found**********/
1 fp;
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("file1.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。