admin 管理员组文章数量: 887053
2024年1月6日发(作者:c语言怎么输入一个二维数组)
◇邵东职业中专2007年高三C语言习题◇
第十二章 文件
基础训练
一、填空题
1、 文件是指___________________________________________________________。
2、 根据数据的组织形式,C中将文件分为______ASCII码文件________和___二进制文件___________两种类型。
3、 现要求以读写方式,打开一个文本文件 stu1 ,写出语句:
__FILE *fp fp=fopen(“”,”r+”);_______________。
__________________________________。
4、 现要求将上题中打开的文件关闭掉,写出语句:___fclose(fp);__________________。
5、 若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则打开文件方式字符串应该是___fopen(“”,”wb+”);__________。
二、选择题
1、若要打开A盘上user子目录下名为的文本文件进行读、写操作,下面符合此要求的函数调用是( ) 。
A) fopen("A:","r") B) fopen("A:","r+")
C) fopen("A:","rb") C) fopen("A:","w")
2、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为( )。
A) 0 B) 1 C) -1 D) 一个非0值
3、 当已经存在一个文件,执行函数fopen(“”,”r+”)的功能是( )。
A)打开文件,清除原有的内容;
B)打开文件,只能写入新的内容;
C)打开文件,只能读取原有内容;
D)打开文件,可以读取和写入新的内容;
4、 fread(buf , 64,2,fp)的功能是:( )
A)从fp所指向的文件中,读出整数64,并存放在buf中;
本试卷共5页 第1页 制卷人:容利平
B)从fp所指向的文件中,读出整数64和2,并存放在buf中;
C)从fp所指向的文件中,读出64个字节的字符,读两次,并存放在buf地址中;
D)从fp所指向的文件中,读出64个字节的字符,并存放在buf中;
5、 以下程序的功能是( ) 。
main()
{
FILE * fp;
char str[]=”Beijing 2008”;
fp = fopen(“file2”,”w”);
fputs(str,fp);
fclose(fp);
}
A)在屏幕上显示“Beiing 2008”;
B)把”Beijing 2008”存入file2文件中;
C)在打印机上打印出“Beiing 2008”;
D)以上都不对;
6、 以下程序是建立一个名为myfile的文件,并把从键盘输入字符存入该文件,当键盘上输入结束时关闭该文件。选择正确内容填空。
main()
{ FILE *fp;
char c ;
char name[10];
fp=fopen(“myfile”,_”wb”_______);
do
{ c=getchar();
fputc(c , fp);
} while(c!=EOF);
fclose(fp); }
(1) A) fgets B)fopen C ) fclose D) fgetc
(2) A) “r” B) “r+” C ) “w” D)
“w+”
三、设计题
1、 编写一个程序,以只读方式打开一个文本文件 ,如果打开,将文件地址放在fp文件指针中,打不开,显示“Cann’t open file n. ”,
◇邵东职业中专2007年高三C语言习题◇
然后退出。void main()
{
FILE *fp;
if((fp=fopen("","r"))='0');
printf("")
}
综合训练
一、填空题
1、以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE *myf; ling f1;
myf= _________ (“test.t”,“rb”);
fseek(myf,0,SEEK_END); f1=ftel(myf);
fclose(myf);
printf(“%dn”,f1);
2、下面程序把从终端读入的10个整数以二进制方式写到一个名为的新文件中,请填空.
#include
FILE *fp;
main()
{ int i,j;
if((fp=fopen(__””__________, "wb"))==NULL)
exit(0);
for(i=0; i<10; i++)
{ scanf("%d",&j);
fwrite(&j,sizeof(int),1,______fp_______ );
}
本试卷共5页 第2页 制卷人:容利平
fclose(fp);
3、以下程序用来统计文件中字符个数。请填空。
#include "stdio.h"
main()
{ FILE *fp; long num=0L;
if((fp=fopen("","r"))==NULL)
{ pirntf("Open errorn"); exit(0);}
while( ___!feof(fp)______________ )
{ fgetc(fp); num++;}
printf("num=%1dn",num-1);
fclose(fp);
}
4、以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。
#include
main( )
{ FILE *fp;
char ch,fname[32]; int count=0;
printf("Input the filename :"); scanf("%s",fname);
if((fp=fopen( _fname____________ ,"w+"))==NULL)
{ printf("Can't open file:%s n",fname); exit(0);}
printf("Enter data:n");
while((ch=getchar())!="#"){ fputc(ch,fp); count++;}
fprintf(____________ ,"n%dn", count);
fclose(fp);
}
5、以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件中,然后从该文件读出字符串并显示出来。请填空。
#include
main()
{ FILE *fp;
char str[100]; int i=0;
if((fp=fopen("",___________))==NULL)
{ printf("can't open this file.n");exit(0);}
◇邵东职业中专2007年高三C语言习题◇
printf("input astring:n"); gest(str);
while (str[i])
{ if(str[i]>='a'&&str[i]<='z')
str[i]=_____ ________;
fputc(str[i],fp);
i++;
}
fclose(fp);
main()
{ FILE *fp;
long count =0;
if ((fp=fopen(“”,___________))==NULL)
{ printf (“cannot open filen”);
exit(0) ;
}
while( ! feof (fp)) //! feof (fp)---- 未到文件尾,为真
fp=fopen("",______________);
fgets(str,100,fp);
printf("%sn",str);
fclose(fp);
}
6、 下面程序由键盘输入字符,存放到文件中,用!结束输入,请在____________上填空。
#include
main()
{ FILE *fp;
char ch ;
char fname[10];
printf(“Input name of filen”);
gets(fname);
if ((fp=fopen( fname, “w”))==NULL)
{ printf (“cannot open filen”);
exit(0) ;
}
printf((“Enter data:n”);
while(_______________!=’!’) //提示:从键盘输入一个字符,如不是!
fputc(__________________) ; //将从键盘输入的字符存入打开的文件中
fclose(fp);
}
7、下面程序用变量count 统计文件中字符的个数。请在____________中填写正确内容。
#include
本试卷共5页 第3页 制卷人:容利平
//feof()函数判断文件指针是否到文件尾,到文件尾,函数返回非0值,若未到文件尾,函数返回值0
{ ___________________; //提示:从文件读入一个字符
______________;
}
printf( “count =%ldn”,count);
_________________;
}
二、选择题
1、下面的程序执行后,文件testt.t中的内容是( )。
#include
void fun(char *fname.,char *st)
{ FILE *myf; int i;
myf=fopen(fname,“w” );
for(i=0;i fclose(myf); } main() { fun(“test”,“new world”; fun(“test”,“hello,”0;) A)hello, B)new worldhello, C)new world D) hello, rld 2、有以下程序 #include main() { FILE *fp; int i=20,j=30,k,n; fp=fopen(“”“w”); fprintf(fp,“%dn”,i);fprintf(fp,“%dn”j); fclose(fp); ◇邵东职业中专2007年高三C语言习题◇ fp=fopen(“”, “r”); 5、以下程序是将一个名为 的文本文件拷贝到一个名为的新文fp=fscanf(fp,“%d%d”,&k,&n); printf(“%d%dn”,k,n); 本文件中,请选择正确内容填空。 fclose(fp); #include } main() 程序运行后的输出结果是( ) 。 { FILE * fp1, *fp2 ; A) 20 30 B) 20 50 C) 30 50 D) 30 int c ; 20 3、 若有以下定义和说明: #iinclude struct std { char num[6]; char name[8]; float mark[4]; }a[30]; FILE * fp; 设文件中以二进制形式存有许多学生的数据,且已经正确打开,文件指针定位在文件开头,若要从文件中读出30个学生的数据放入a数组中,以下正确的语句是( )。 A)fread (a , sizeof(struct std),30 , fp) ; B)fread (&a[i] , sizeof(struct std),1 , fp) ; C)fread (a +i, sizeof(struct std),1 , fp) ; D)fread (a , struct std,30 , fp) ; 4、设有以下结构体类型: struct st { char name[8]; int num; float s[4]; } student [20]; 并且结构体数组student中的元素都已经有值,若要将这些元素写到fp所指向的磁盘文件中,以下不正确的形式是( )。 A)fwrite (student , sizeof(struct st ),20 , fp) ; B)fwrite (student ,20* sizeof(struct st ),1, fp) ; C)fwrite (student , 10*sizeof(struct st ),10 , fp); D)for (i=0;i<20;i++) fwrite (student+i , sizeof(struct st ),1 , fp); 本试卷共5页 第4页 制卷人:容利平 fp1=fopen(“”,__________); fp2=fopen(“”,__________); c=getc(fp1); while(c!=EOF) { fputc(c,fp2) ; c = fgetc(fp1); } fclose(fp1); fclose(fp2); } A) “r” B ) “r+” C) “rb” D) “rb+” A) “W+ “ B) “wb+” C) “ w” D) “wb” 三、问答题 1、 什么叫“缓冲文件系统”? 四、编程题: 1、 从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test ”中保存,输入的字符串以!表示结束。 ◇邵东职业中专2007年高三C语言习题◇ 参考答案 基础训练 一、填空题 1、是指存储在外部介质上数据的集合 ; 2、 ASCII文件和二进制文件; 3、 FILE * fp ; fp = fopen( “stu”,” r+ ”) ; 4、 fclose ( fp); 5、 ”wb+” 二、选择题: 1、B 2.、A 3、D 4、C 5、B 6、B、C 三、编程题:参考答案 main() { FILE * fp; If ((fp=fopen(“”,”r”))==NULL) { printf(“Cann’t open file n” ); exit(0); } } 综合训练 一、填空题 1、fopen 2、"" fp 3、 !feof(fp) 4、 fname fp 5、 "w"或"w+"或"wt"或"w+t"或"""wt+" str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A' "r"或"r+"或"r+t"或"rt+" 6、 ( ch=getchar()) ch , fp 本试卷共5页 第5页 制卷人:容利平 7、 r fgetc(fp); count++ fclose(fp); 二、选择题 1.、A 2、 A 3、A 4、C 5、 A、C 三、问答题(略) 四、编程题 参考答案: #include main() {FILE *fp; char str[80],filename[10]; int i=0; if((fp=fopen(“test”,”w”))==NULL) { printf(“Cannot open filen”); exit(0); } printf(“Input a string:n”); gets(str); while(str[i]!=’!’) { if (str[i]>=’a’&&str[i]<=’z’) str[i]=str[i]-32; fputc(str[i],fp); i++;} fclose(fp); fp=fopen(“test”,”r”); fgets(str,strlen(str)+1,fp); printf(“%sn”,str); fclose(fp); }
版权声明:本文标题:C语言文件练习题含答案(推荐文档) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1704476307h461451.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论