任务43:文件的应用 《编程语言-C语言》45分钟专题训练

| 2份
| 29页
| 102人阅读
| 1人下载

内容正文:

湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目九: 文件 第43卷: 文件的应用 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.在C语言中,文件的使用要遵循的顺序是( ) A.打开文件、读写文件、关闭文件 B.读写文件、关闭文件 C.打开文件、读写文件 D.打开文件、关闭文件 【答案】A 2.在C语言中,如若同时对多个文件进行操作,则打开语句和关闭语句应该( ) A.多句打开,一句关闭 B.多句打开,多句关闭 C.一句打开,无需关闭 D.一句打开,多句关闭 【答案】B 3.如若要使用fopen函数打开一个新的二进制文件,该文件既要能读也要能写,则文件的打开方式应该选择( ) A. "ab+" B. "wb+" C. "rb+" D. "r" 【答案】B 4.在C语言中,fgetc函数的作用是从指定文件中读入一个字符,该文件的打开方式必须是( ) A.只写 B.追加 C.读或读写 D.以上选项均不正确 【答案】C 5.在C语言中,想要从键盘读入文本(用#作为输入结束标志),写入“a.txt”文件中,则下列语句中,正确的一项是( ) A.while(c=getchar()!=’#’) B.while((c=getchar())==’#’) C.while((c=getchar())!=’#’) D.while(c=getchar()==’#’) 【答案】C 6.在C语言中,标准函数fgets(s,n,f)的功能是( ) A.从文件f中读取长度为n的字符串存入指针s所指向的内存 B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C.从文件f中读取n个字符串存入指针s所指的内存 D.从文件f中读取长度为n-1的字符串存入指针s所指的内存 【答案】B 7.下列选项中,属于fwrite()函数的一般调用形式是( ) A.fwrite(始地址,字节数,数据个数,文件指针); B.fwrite(文件指针,始地址,字节数,数据个数); C.fwrite(始地址,数据个数,字节数,文件指针); D.fwrite(始地址,文件指针,字节数,数据个数); 【答案】A 8.下列选项中,正确调用fprintf()函数的格式为( ) A.fprintf(文件,格式字符串,输出项地址列表); B.fprintf(输出项地址列表,文件指针,格式字符串); C.fprintf(文件指针,输出项地址列表,格式字符串); D.fprintf(文件指针,格式字符串,输出项地址列表); 【答案】D 9.若文件aa.txt中原有内容为“very”,运行以下程序后,文件“aa.txt”文件中的内容为( ) main() {FILE *fp; fp=fopen("aa.txt","a"); fprintf(fp,"good"); fclose(fp);getch();} A.verygood B.goodvery C.good D.very 【答案】A 10.若文件aa.txt内原有内容“I am student!”,执行下列程序后,输出结果是( ) main() {FILE *fp; fp=fopen("aa.txt","r"); while(!feof(fp)) putchar(fgetc(fp)); fclose(fp);getch();} A.I am student! B.NULL C.I D.I AM STUDENT! 【答案】A 11.在C语言中,函数rewind(fp)的作用是( ) A.使文件指针fp重新返回文件的开头 B.将文件指针fp指向文件中所要求的特定位置 C.使文件指针fp指向文件的末尾 D.使文件指针fp自动移动到下一个字符的位置 【答案】A 12.设有结构体类型:typedef struct str{int no;char name[20];}STR;,若有变量定义:STR a[20],x;,要实现向文件指针fp所指的文件输出一个结构体信息,则下列语句中,错误的一项是( ) A.fwrite(a,sizeof(STR),1,fp); B.fwrite(&a[2],sizeof(STR),1,fp); C.fwrite(&x,sizeof(STR),1,fp); D.fwrite(x,sizeof(STR),1,fp); 【答案】D。fwrite()函数的调用格式为:fwrite(buffer,size,count,fp);其中buffer是一个指针(地址)。 13.下列选项中,与函数:fseek(fp,0L,SEEK_SET)有相同作用的是( ) A.rewind(fp) B.ftell(fp) C.fgetc(fp) D.feof(fp) 【答案】A 14.函数调用语句:fseek(fp,-20L,2);的含义是( ) A.将文件指针移动到距离文件头20字节处 B.将文件指针从当前位置向文件尾方向移动20字节 C.将文件指针从当前位置向文件头方向移动20字节 D.将文件指针从文件末尾处向文件头方向移动20字节 【答案】D。函数起始点为2,表示文件指针指向文件末尾。 15.下列语句中,不能将文件指针fp指向文件头的语句是( ) A.fp=fopen("12.txt","w"); B.rewind(fp); C.feof(fp); D.fseek(fp,0L,0); 【答案】C 16下列选项中,可以用来判断二进制文件的结束方式的是( ) A.fgetc(fp)==EOF; B.fgetc(fp)!=EOF; C.feof(fp)==0; D.feof(fp)!=0; 【答案】D 17.下列选项中,有关“文件指针”概念的叙述中,正确的一项是( ) A.文件指针就是文件位置指针,表示当前读写数据的位置 B.文件指针是程序中用FILE定义的指针变量 C.文件指针指向文件在计算机中的存储位置 D.把文件指针传给fscanf()函数,就可以向文本文件中写入任意的字符 【答案】B 18.调用ferror()函数检测文件是否出错时,若文件没有出错,则ferror()函数的返回值是( ) A.TURE B.-1 C.1 D.0 【答案】D 19.设文本文件f1.txt中的内容为:Hello,则运行下列程序后文件f1.txt中的内容为( ) main() {FILE *fp1; fp1=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1);getch();} A.Helloabc B.abcd C.abc D.abcHello 【答案】C 20.下列程序的功能是( ) main() {FILE *in,*out; if((in=fopen("infile.txt","r"))==NULL) {printf("Can not open infile! "); exit(0);} if((out=fopen("outfile.txt","w"))==NULL) {printf("Can not open outfile! "); exit(0);} while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out);getch();} A.程序实现在屏幕上显示磁盘文件infile.txt的内容 B.程序实现将两个磁盘文件infile.txt和outfile.txt的内容合并 C.程序实现将磁盘文件infile.txt复制到磁盘文件outfile.txt D.程序实现将两个磁盘文件合并,并在屏幕上输出 【答案】C 21.执行以下程序后,屏幕输出显示:Can not open this file!,可能的原因是( ) main() {FILE *fp; char str[20]; fp=fopen("12.txt","r"); if(fp==NULL) {printf("Can not open this file! "); exit(0);} fscanf(fp,"%s",str); fclose(fp);getch();} A.当前工作目录下有12.txt文件,但文件太小 B.当前工作目录下有12.txt文件,但文件太大 C.当前工作目录下有12.txt文件,但文件打开后无法关闭 D.当前工作目录下没有12.txt文件 【答案】D 22.执行以下程序后,屏幕输出Hello!,则下列说法中,正确的一项是( ) main() {FILE *fp; long int n; fp=fopen("12.txt","w+"); if(fp!=NULL) {fprintf(fp,"%s ","File is written successful! "); fclose(fp); printf("Hello! ");}getch();} A.当前工作目录下存在12.txt文件,文件中的内容是“Hello!” B.fclose(fp);语句的功能是打开文件 C.当前工作目录下一定不存在12.txt文件 D.当前工作目录下一定存在12.txt文件 【答案】D 23.下列程序的功能是( ) main() {FILE *fp; long int n; fp=fopen("12.txt","rb"); fseek(fp,0,SEEK_END); n=ftell(fp); fclose(fp); printf("%ld",n);getch();} A.计算文件12.txt的起始地址 B.计算文件12.txt的终止地址 C.计算文件12.txt内容的字节数 D.将文件指针定位到文件末尾 【答案】C 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) main() {FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen("12.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("12.dat","rb"); fseek(fp,-2L*sizeof(int),2); fread(&b,sizeof(int),1,fp); fclose(fp); printf("%d ",b); getch();} 【答案】3 25.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int i; char ch[ ]="Work",t; fp=fopen("12.txt","wb+"); for(i=0;i<4;i++) fwrite(&ch[i],1,1,fp); fseek(fp,-2L,SEEK_END); fread(&t,1,1,fp); fclose(fp); printf("%c ",t);getch();} 【答案】r 26.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int a[10]={3,4,5},i,n; fp=fopen("12.txt","w"); for(i=0;i<3;i++) fprintf(fp,"%d",a[i]); fprintf(fp," "); fclose(fp); fp=fopen("12.txt","r"); fscanf(fp,"%d",&n); fclose(fp); printf("%d ",n);getch();} 【答案】345 27.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int i,a[6]={43,25,31,65,58,16}; fp=fopen("12.txt","wb+"); fwrite(a,sizeof(int),6,fp); fseek(fp,sizeof(int)*3,SEEK_SET); fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i<6;i++) printf("%d ",a[i]); getch();} 【答案】65 58 16 65 58 16 28.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int k,n,a[6]={1,2,3,4,5,6}; fp=fopen("12.dat","w"); fprintf(fp,"%d,%d,%d ",a[0],a[1],a[2]); fprintf(fp,"%d,%d,%d ",a[3],a[4],a[5]); fclose(fp); fp=fopen("12.dat","r"); fscanf(fp,"%d,%d",&k,&n); printf("%d,%d ",k,n); fclose(fp); getch();} 【答案】1,2 29.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; char str[10]; fp=fopen("myfile.txt","w"); fputs("abc",fp); fclose(fp); fp=fopen("myfile.txt","a+"); fprintf(fp,"%d",28); rewind(fp); fscanf(fp,"%s",str); puts(str); fclose(fp);getch();} 【答案】abc28 30.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int i,k,n; fp=fopen("myfile.dat","w+"); for(i=1;i<6;i++) {fprintf(fp,"%d",i); if(i%3==0) fprintf(fp," ");} rewind(fp); fscanf(fp,"%d%d",&k,&n); printf("%d %d",k,n); fclose(fp); getch();} 【答案】123 45 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分) 31.下列程序的功能是:从键盘输入若干行字符(每个长度不等),输入后把它们存储到某一磁盘文件中,再从该文件中读入这些数据,将其中小写字母转换成大写字母后再输出至显示屏。程序中有三处错误,请改正。 L1 #include <stdio.h> L2 #include <stdlib.h> L3 #include<string.h> L4 #include <conio.h> L5 main() L6 {int i,flag; L7 char str[100],c; L8 FILE *fp; L9 fp=fopen("D:\\123\\date","r"); L10 flag=1; L11 while(flag==1) L12 {printf("input string: "); L13 gets(str); L14 fprintf(fp,"%s",str); L15 printf("continue?"); L16 c=getchar(); L17 if((c=='N')||(c=='n')) L18 flag=0; L19 getchar();} L20 fclose(fp); L21 fp=fopen("D:\\123\\date","r"); L22 while(fscanf(fp,"%s",str)==EOF) L23 {for(i=0;str[i]!='\0';i++) L24 if((str[i]>='A')&&(str[i]<='Z')) L25 str[i]-=32; L26 printf("%s ",str);} L27 fclose(fp);getch();} 答案: L9 fp=fopen("D:\\123\\date","w"); L22 while(fscanf(fp,"%s",str)!=EOF) L24 if((str[i]>='a')&&(str[i]<='z')) 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是:从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件中保存,输入的字符串以“!”结束。 #include <stdio.h> #include <stdlib.h> #include<string.h> #include <conio.h> main() {FILE *fp; char str[100]; int i=0; if((fp=fopen("D:\\123\\12","w"))==NULL) {printf("can not open file "); exit(0);} printf("input a string: "); gets(str); while(【1】) {if(str[i]>='a'&&str[i]<='z') str[i]=【2】; fputc(【3】); i++;} fclose(fp); fp=fopen("D:\\123\\12","r"); fgets(【4】); printf("%s ",str); fclose(fp); getch();} 答案:①str[i]!='!' ②str[i]-32 ③str[i],fp ④str,strlen(str)+1,fp 33.以下程序的功能是:有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算处平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。请填空。 #include <stdio.h> #include <stdlib.h> #include<string.h> #include <conio.h> struct student {char num[10]; char name[8]; int score[3]; float ave; }stu[5]; main() {int i,j,sum; 【1】; for(i=0;i<5;i++) {printf("input score of student %d: ",i+1); printf("NO:"); scanf("%s",stu[i].num); printf("name:"); scanf("%s",stu[i].name); sum=0; for(j=0;j<3;j++) {printf("score %d:",j+1); scanf("%d",&stu[i].score[j]); sum+=stu[i].score[j];} printf(" "); stu[i].ave=sum/3.0;} fp=fopen("D:\\123\\stud","w"); for(i=0;i<5;i++) if(fwrite(【2】)!=1) printf("file write error "); fclose(fp); fp=fopen("D:\\123\\stud","【3】"); for(i=0;i<5;i++) {fread(【3】); printf("%8s%8s%8d%8d%8d%8.2f ",stu[i].num,stu[i].name, stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);} getch();} 答案:①FILE *fp ②&stu[i],sizeof(struct student),1,fp ③ r ④&stu[i],sizeof(struct student),1,fp 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目九: 文件 第43卷: 文件的应用 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.在C语言中,文件的使用要遵循的顺序是( ) A.打开文件、读写文件、关闭文件 B.读写文件、关闭文件 C.打开文件、读写文件 D.打开文件、关闭文件 2.在C语言中,如若同时对多个文件进行操作,则打开语句和关闭语句应该( ) A.多句打开,一句关闭 B.多句打开,多句关闭 C.一句打开,无需关闭 D.一句打开,多句关闭 3.如若要使用fopen函数打开一个新的二进制文件,该文件既要能读也要能写,则文件的打开方式应该选择( ) A. "ab+" B. "wb+" C. "rb+" D. "r" 4.在C语言中,fgetc函数的作用是从指定文件中读入一个字符,该文件的打开方式必须是( ) A.只写 B.追加 C.读或读写 D.以上选项均不正确 5.在C语言中,想要从键盘读入文本(用#作为输入结束标志),写入“a.txt”文件中,则下列语句中,正确的一项是( ) A.while(c=getchar()!=’#’) B.while((c=getchar())==’#’) C.while((c=getchar())!=’#’) D.while(c=getchar()==’#’) 6.在C语言中,标准函数fgets(s,n,f)的功能是( ) A.从文件f中读取长度为n的字符串存入指针s所指向的内存 B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C.从文件f中读取n个字符串存入指针s所指的内存 D.从文件f中读取长度为n-1的字符串存入指针s所指的内存 7.下列选项中,属于fwrite()函数的一般调用形式是( ) A.fwrite(始地址,字节数,数据个数,文件指针); B.fwrite(文件指针,始地址,字节数,数据个数); C.fwrite(始地址,数据个数,字节数,文件指针); D.fwrite(始地址,文件指针,字节数,数据个数); 8.下列选项中,正确调用fprintf()函数的格式为( ) A.fprintf(文件,格式字符串,输出项地址列表); B.fprintf(输出项地址列表,文件指针,格式字符串); C.fprintf(文件指针,输出项地址列表,格式字符串); D.fprintf(文件指针,格式字符串,输出项地址列表); 9.若文件aa.txt中原有内容为“very”,运行以下程序后,文件“aa.txt”文件中的内容为( ) main() {FILE *fp; fp=fopen("aa.txt","a"); fprintf(fp,"good"); fclose(fp);getch();} A.verygood B.goodvery C.good D.very 10.若文件aa.txt内原有内容“I am student!”,执行下列程序后,输出结果是( ) main() {FILE *fp; fp=fopen("aa.txt","r"); while(!feof(fp)) putchar(fgetc(fp)); fclose(fp);getch();} A.I am student! B.NULL C.I D.I AM STUDENT! 11.在C语言中,函数rewind(fp)的作用是( ) A.使文件指针fp重新返回文件的开头 B.将文件指针fp指向文件中所要求的特定位置 C.使文件指针fp指向文件的末尾 D.使文件指针fp自动移动到下一个字符的位置 12.设有结构体类型:typedef struct str{int no;char name[20];}STR;,若有变量定义:STR a[20],x;,要实现向文件指针fp所指的文件输出一个结构体信息,则下列语句中,错误的一项是( ) A.fwrite(a,sizeof(STR),1,fp); B.fwrite(&a[2],sizeof(STR),1,fp); C.fwrite(&x,sizeof(STR),1,fp); D.fwrite(x,sizeof(STR),1,fp); 13.下列选项中,与函数:fseek(fp,0L,SEEK_SET)有相同作用的是( ) A.rewind(fp) B.ftell(fp) C.fgetc(fp) D.feof(fp) 14.函数调用语句:fseek(fp,-20L,2);的含义是( ) A.将文件指针移动到距离文件头20字节处 B.将文件指针从当前位置向文件尾方向移动20字节 C.将文件指针从当前位置向文件头方向移动20字节 D.将文件指针从文件末尾处向文件头方向移动20字节 15.下列语句中,不能将文件指针fp指向文件头的语句是( ) A.fp=fopen("12.txt","w"); B.rewind(fp); C.feof(fp); D.fseek(fp,0L,0); 16下列选项中,可以用来判断二进制文件的结束方式的是( ) A.fgetc(fp)==EOF; B.fgetc(fp)!=EOF; C.feof(fp)==0; D.feof(fp)!=0; 17.下列选项中,有关“文件指针”概念的叙述中,正确的一项是( ) A.文件指针就是文件位置指针,表示当前读写数据的位置 B.文件指针是程序中用FILE定义的指针变量 C.文件指针指向文件在计算机中的存储位置 D.把文件指针传给fscanf()函数,就可以向文本文件中写入任意的字符 18.调用ferror()函数检测文件是否出错时,若文件没有出错,则ferror()函数的返回值是( ) A.TURE B.-1 C.1 D.0 19.设文本文件f1.txt中的内容为:Hello,则运行下列程序后文件f1.txt中的内容为( ) main() {FILE *fp1; fp1=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1);getch();} A.Helloabc B.abcd C.abc D.abcHello 20.下列程序的功能是( ) main() {FILE *in,*out; if((in=fopen("infile.txt","r"))==NULL) {printf("Can not open infile! "); exit(0);} if((out=fopen("outfile.txt","w"))==NULL) {printf("Can not open outfile! "); exit(0);} while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out);getch();} A.程序实现在屏幕上显示磁盘文件infile.txt的内容 B.程序实现将两个磁盘文件infile.txt和outfile.txt的内容合并 C.程序实现将磁盘文件infile.txt复制到磁盘文件outfile.txt D.程序实现将两个磁盘文件合并,并在屏幕上输出 21.执行以下程序后,屏幕输出显示:Can not open this file!,可能的原因是( ) main() {FILE *fp; char str[20]; fp=fopen("12.txt","r"); if(fp==NULL) {printf("Can not open this file! "); exit(0);} fscanf(fp,"%s",str); fclose(fp);getch();} A.当前工作目录下有12.txt文件,但文件太小 B.当前工作目录下有12.txt文件,但文件太大 C.当前工作目录下有12.txt文件,但文件打开后无法关闭 D.当前工作目录下没有12.txt文件 22.执行以下程序后,屏幕输出Hello!,则下列说法中,正确的一项是( ) main() {FILE *fp; long int n; fp=fopen("12.txt","w+"); if(fp!=NULL) {fprintf(fp,"%s ","File is written successful! "); fclose(fp); printf("Hello! ");}getch();} A.当前工作目录下存在12.txt文件,文件中的内容是“Hello!” B.fclose(fp);语句的功能是打开文件 C.当前工作目录下一定不存在12.txt文件 D.当前工作目录下一定存在12.txt文件 23.下列程序的功能是( ) main() {FILE *fp; long int n; fp=fopen("12.txt","rb"); fseek(fp,0,SEEK_END); n=ftell(fp); fclose(fp); printf("%ld",n);getch();} A.计算文件12.txt的起始地址 B.计算文件12.txt的终止地址 C.计算文件12.txt内容的字节数 D.将文件指针定位到文件末尾 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) main() {FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen("12.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("12.dat","rb"); fseek(fp,-2L*sizeof(int),2); fread(&b,sizeof(int),1,fp); fclose(fp); printf("%d ",b); getch();} 25.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int i; char ch[ ]="Work",t; fp=fopen("12.txt","wb+"); for(i=0;i<4;i++) fwrite(&ch[i],1,1,fp); fseek(fp,-2L,SEEK_END); fread(&t,1,1,fp); fclose(fp); printf("%c ",t);getch();} 26.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int a[10]={3,4,5},i,n; fp=fopen("12.txt","w"); for(i=0;i<3;i++) fprintf(fp,"%d",a[i]); fprintf(fp," "); fclose(fp); fp=fopen("12.txt","r"); fscanf(fp,"%d",&n); fclose(fp); printf("%d ",n);getch();} 27.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int i,a[6]={43,25,31,65,58,16}; fp=fopen("12.txt","wb+"); fwrite(a,sizeof(int),6,fp); fseek(fp,sizeof(int)*3,SEEK_SET); fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i<6;i++) printf("%d ",a[i]); getch();} 28.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int k,n,a[6]={1,2,3,4,5,6}; fp=fopen("12.dat","w"); fprintf(fp,"%d,%d,%d ",a[0],a[1],a[2]); fprintf(fp,"%d,%d,%d ",a[3],a[4],a[5]); fclose(fp); fp=fopen("12.dat","r"); fscanf(fp,"%d,%d",&k,&n); printf("%d,%d ",k,n); fclose(fp); getch();} 29.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; char str[10]; fp=fopen("myfile.txt","w"); fputs("abc",fp); fclose(fp); fp=fopen("myfile.txt","a+"); fprintf(fp,"%d",28); rewind(fp); fscanf(fp,"%s",str); puts(str); fclose(fp);getch();} 30.以下程序的运行结果是( ) #include <stdio.h> #include <conio.h> main() {FILE *fp; int i,k,n; fp=fopen("myfile.dat","w+"); for(i=1;i<6;i++) {fprintf(fp,"%d",i); if(i%3==0) fprintf(fp," ");} rewind(fp); fscanf(fp,"%d%d",&k,&n); printf("%d %d",k,n); fclose(fp); getch();} 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分) 31.下列程序的功能是:从键盘输入若干行字符(每个长度不等),输入后把它们存储到某一磁盘文件中,再从该文件中读入这些数据,将其中小写字母转换成大写字母后再输出至显示屏。程序中有三处错误,请改正。 L1 #include <stdio.h> L2 #include <stdlib.h> L3 #include<string.h> L4 #include <conio.h> L5 main() L6 {int i,flag; L7 char str[100],c; L8 FILE *fp; L9 fp=fopen("D:\\123\\date","r"); L10 flag=1; L11 while(flag==1) L12 {printf("input string: "); L13 gets(str); L14 fprintf(fp,"%s",str); L15 printf("continue?"); L16 c=getchar(); L17 if((c=='N')||(c=='n')) L18 flag=0; L19 getchar();} L20 fclose(fp); L21 fp=fopen("D:\\123\\date","r"); L22 while(fscanf(fp,"%s",str)==EOF) L23 {for(i=0;str[i]!='\0';i++) L24 if((str[i]>='A')&&(str[i]<='Z')) L25 str[i]-=32; L26 printf("%s ",str);} L27 fclose(fp);getch();} 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是:从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件中保存,输入的字符串以“!”结束。 #include <stdio.h> #include <stdlib.h> #include<string.h> #include <conio.h> main() {FILE *fp; char str[100]; int i=0; if((fp=fopen("D:\\123\\12","w"))==NULL) {printf("can not open file "); exit(0);} printf("input a string: "); gets(str); while(【1】) {if(str[i]>='a'&&str[i]<='z') str[i]=【2】; fputc(【3】); i++;} fclose(fp); fp=fopen("D:\\123\\12","r"); fgets(【4】); printf("%s ",str); fclose(fp); getch();} 33.以下程序的功能是:有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算处平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。请填空。 #include <stdio.h> #include <stdlib.h> #include<string.h> #include <conio.h> struct student {char num[10]; char name[8]; int score[3]; float ave; }stu[5]; main() {int i,j,sum; 【1】; for(i=0;i<5;i++) {printf("input score of student %d: ",i+1); printf("NO:"); scanf("%s",stu[i].num); printf("name:"); scanf("%s",stu[i].name); sum=0; for(j=0;j<3;j++) {printf("score %d:",j+1); scanf("%d",&stu[i].score[j]); sum+=stu[i].score[j];} printf(" "); stu[i].ave=sum/3.0;} fp=fopen("D:\\123\\stud","w"); for(i=0;i<5;i++) if(fwrite(【2】)!=1) printf("file write error "); fclose(fp); fp=fopen("D:\\123\\stud","【3】"); for(i=0;i<5;i++) {fread(【3】); printf("%8s%8s%8d%8d%8d%8.2f ",stu[i].num,stu[i].name, stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);} getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务43:文件的应用 《编程语言-C语言》45分钟专题训练-第1页
1
任务43:文件的应用 《编程语言-C语言》45分钟专题训练-第2页
2
任务43:文件的应用 《编程语言-C语言》45分钟专题训练-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。