任务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();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$