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