同步训练9-2答案 一、单项选择题 1.已知函数的调用形式:fread(buf,size,count,fp);其中buf代表的是( C )。 A.一个整形变量,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项 2.若有以下定义和说明: #include struct std { char num[6]; char name[8]; float mark[4]; } a[30]; FILE *fp; 设文件中以二进制形式存有10个班的学生数据,且已正确打开,文件位置指针定位于文件开头。若要从文件中读出30个学生的数据放入a数组中,以下不能实现此功能的语句是( D )。 A.for (i=0;i<30;i++) fread(&a[i],sizeof(struct std),1L,fp); fread(a+i,sizeof(struct std),1L,fp); B.for (i=0;i<30;i++) C.fread(a,sizeof(struct std),30L,fp); D.for (i=0;i<30;i++) fread(a[i],sizeof(struct std),1L,fp); 3.fscanf函数的正确调用形式是( D )。 A.fscanf(格式字符串,输出表列) B.fscanf(格式字符串,输出表列,fp) C.fscanf(格式字符串,文件指针,输出表列) D.fscanf(文件指针,格式字符串,输出表列) 4.fwrite函数的一般调用形式是( D )。 A.fwrite(buffer,count,size,fp) B.fwrite(fp ,size , count, buffer) C.fwrite(fp , count, size , buffer) A.EOF B.1 D.fwrite(buffer, size,count, fp) C.0 D.输出的字符 5.若调用fputc函数成功输出字符,则其返回值是( D )。 6.设有以下结构体类型: struct st { char name [8]; int num; float s[4]; } student[50]; 并且结构体数组student中的元素都已有值 ,若要将这些元素写到硬盘文件中,以下不正确的形式是( C )。 A.fwrite( student ,sizeof(struct st),50,fp); B.fwrite( student ,50*sizeof(struct st),1,fp); C.fwrite( student ,25*sizeof(struct st),25,fp); D.for (i=0;i<50 ;i++) fwrite(student+i,sizeof(struct st),1,fp); 7.阅读以下程序及对程序功能的描述,其中正确的描述是( C )。 #include int main() { FILE *in, *out; char infile[10],outfile[10]; int c; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if (( in =fopen( infile, "r"))==NULL) { printf("cannot open infile\n");exit(0);} if ((out=fopen(outfile,"w"))==NULL {printf("cannot open outfile\n");exit(0);} while ((ch=fgetc(in))!=EOF) fputc(ch,out); fclose(in); fclose(out); } A.程序完成将磁盘文件的信息在屏幕上显示的功能 B.程序完成将两个磁盘文件合二为一的功能 C.程序完成将一个磁盘文件复制到另一个磁盘文件中 D.程序完成将两个磁盘文件合并且在屏幕上输出 二、知识填空题 1.函数调用语句:fgets(buf,n,fp);从fp指向的文件中读入 n-1 个字符放到buf字符数组中,函数返回值为 buf的首地址 。 2.设有以下结构体类型: struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构数组student中的元素都已有值,若要将这些元素写到硬盘fp文件中,请将以下fwrite语句补充完整: fwrite(student, 50*sizeof(st) ,1,fp); 3.feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为 1 ,否则为 0 。 4.用fopen(文件名,使用方式)打开文件,当使用方式为“r”时,只 能 读入 数据,不能进行 写 操作;当使用方式为“w”时,只能 写入 数据,不能进行 读 数据操作。 5.当调用函数fread从磁盘文件中读数据时,若函数返回值为10,则表明 读入了10个字符 ;若函数的返回值为0,则是 遇到了文件结束符 ;若函数返回值为-1,则意味着 读文件出错 。 三、程序填空题 1.以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志。请填空。 #include int main() { FILE * fp; 本文来源:https://www.wddqw.com/doc/a33962bef624ccbff121dd36a32d7375a417c66b.html