C语言测试习题:文件_第1页
C语言测试习题:文件_第2页
C语言测试习题:文件_第3页
C语言测试习题:文件_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、选择题:(1)以下叙述中错误的是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE  fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(2)有以下程序 #include    <stdio.h> main()  FILE  *fp;      int  i, k, n;   fp=fopen("data.dat&qu

2、ot;, "w+");   for(i=1; i<6; i+)     fprintf(fp,"%d   ",i);      if(i%3=0)  fprintf(fp,"n");      rewind(fp);   fscanf(fp, "%d%d", &k, &n);  printf(&q

3、uot;%d %dn", k, n);   fclose(fp); 程序运行后的输出结果是A)0  0   B)123  45  C)1  4   D)1  2(3)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是              A)feof(fp)B)ftell(fp)C)fg

4、etc(fp)D)rewind(fp)(4)有以下程序#include  "stdio.h"void WriteStr(char  *fn,char  *str)   FILE  *fp;   fp=fopen(fn,"W");   fputs(str,fp);   fclose(fp);main()   WriteStr("t1.dat","start"); 

5、60; WriteStr("t1.dat","end");程序运行后,文件t1.dat中的内容是                       A)startB)endC)startendD)endrt(5) 有如下程序#include <stdio.h>main()FILE  *fp1;   fp

6、1=fopen("f1.txt","w");   fprintf(fp1,"abc");   fclose(fp1);若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为A) goodabc   B) abcd    C) abc    D) abcgood(6) 有以下程序#include <stdio.h>main( )  FILE *fp; 

7、int i,k=0,n=0;   fp=fopen(“d1.dat”,”w”);   for(i=1;i<4;i+)   fprintf(fp,”%d”,i);   fclose(fp);   fp=fopen(“d1.dat”,”r”);   fscanf(fp,”%d%d”,&k,&n);   printf(“%d %dn”,k,n);   fclose(fp);执行后输出结果是A) 1  2

8、0;   B) 123  0    C) 1  23    D)  0   0 (7) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#include <stdio.h>main( ) FILE *fp;  int i,a4=1,2,3,4,b;  fp=fopen("data.dat",

9、"wb");  for(i=0;i<4;i+)  fwrite(&ai,sizeof(int),1,fp);  fclose(fp);fp=fopen("data.dat ","rb");fseek(fp,-2L*sizeof(int).SEEK_END) ;fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%dn",B) ;执行后输出结果是A) 2 

10、    B) 1     C) 4     D) 3(8) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A) 0             B) 1         C) 1      

11、0;  D) 一个非0值(9) 下列关于C语言数据文件的叙述中正确的是A) 文件由ASCII码字符序列组成,C语言只能读写文本文件B) 文件由二进制数据序列组成,C语言只能读写二进制文件C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(10) 以下叙述中不正确的是A)语言中的文本文件以ASC码形式存储数据B)语言中对二进制文件的访问速度比文本文件快C)语言中,随机读写方式不适用于文本文件D)语言中,顺序读写方式不适用于二进制文件11) 以下程序企图把从终端输入的字符输出到名为abc.txt的文件

12、中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include <stdio.h>main() FILE *fout; char ch; fout=fopen('abc.txt',w');ch=fgetc(stdin);while(ch!=#)  fputc(ch,fout);  ch=fgetc(stdin);  fclose(fout); 出错的原因是A) 函数fopen调用形式错误  

13、60; B) 输入文件没有关闭C) 函数fgetc调用形式错误    D) 文件指针stdin没有定义(12) 有以下程序#include <stdio.h>main() FILE *fp; int i=20,j=30,k,n;fp=fopen(“d1.dat”“w”);fprintf(fp,“%dn”,i);fprintf(fp,“%dn”j);fclose(fp);fp=fopen(“d1.dat”, “r”);fp=fscanf(fp,“%d%d”,&k,&n);  printf(“%d%dn”,k,

14、n);fclose(fp);程序运行后的输出结果是A) 20  30    B) 20  50  C) 30  50   D) 30  20(13) 以下叙述中错误的是A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以B) 在程序结束时,应当用fclose函数关闭已打开的文件C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D) 不可以用FILE定义指向二进制文件的文件指针(14) 若要打开A盘上user子目录下名为abc.txt的文本文件进

15、行读、写操作,下面符合此要求的函数调用是A) fopen("A:userabc.txt","r")    B) fopen("A:userabc.txt","r+")C) fopen("A:userabc.txt","rb")   C) fopen("A:userabc.txt","w")(15) 下面的程序执行后,文件testt.t中的内容是#include   &

16、lt;stdio.h>void fun(char   *fname.,char   *st)   FILE  *myf;    int   i;myf=fopen(fname,“w” );for(i=0;i<strlen(st); i+)fputc(sti,myf);fclose(myf);main() fun(“test”,“new world”; fun(“test”,“hello,”0;)A)hello,   B)new worldhel

17、lo,C)new world     D) hello, rld(16) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是A) EOF          B) 1            C) 非零值        D) NULL(17) 在C程序中,可把整型数以二进制形

18、式存放到文件中的函数是A) fprintf函数  B) fread函数      C) fwrite函数    D) fputc函数(18) 标准函数 fgets(s, n, f) 的功能是A) 从文件f中读取长度为n的字符串存入指针s所指的内存B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C) 从文件f中读取n个字符串存入指针s所指的内存D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存二、填空题:(1) 已有文本文件test.txt,其中的内容为:Hello,everyon

19、e!。以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是 【1】 。#include <stdio.h>main() FILE *fr; char str40; fgets(str,5,fr); printf("%sn",str); fclose(fr);(2) 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen(    2  &

20、#160; );。(3) 以下程序用来统计文件中字符个数。请填空。 #include  "stdio.h" main()  FILE  *fp;   long  num=0L;    if(fp=fopen("fname.dat","r")=NULL)      pirntf("Open errorn");  exit(0);  

21、0;  while( 【3】 )         fgetc(fp); num+;     printf("num=%1dn",num-1);     fclose(fp); (4) 以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。FILE  *myf;   ling

22、60; f1;myf= 【4】 (“test.t”,“rb”);   fseek(myf,0,SEEK_END); f1=ftel(myf);fclose(myf);printf(“%dn”,f1);(5) 下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。#include   “stdio.h”FILE  *fp;  char  ch;   if( (fp=fopen (  【5】  ) )= = NULL)exit(0);  &

23、#160;  while( (ch=getchar( ) !=) fputc (ch,fp);   fclose(fp);(6) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。  #include <stdio.h>    main(  )          FILE    *fp;  

24、         char    ch,fname32;   int  count=0;           printf("Input the filename :"); scanf("%s",fname);        if(fp=fopen(

25、  【6】   ,"w+")=NULL)             printf("Can't open file:%s n",fname); exit(0);      printf("Enter data:n");      while(ch=getchar()!="#")

26、60;  fputc(ch,fp);  count+;      fprintf(  【7】   ,"n%dn", count);          fclose(fp);    (7) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空.     #include<stdio,h>

27、;     FILE  *fp;     main()      int i,j;       if(fp=fopen( 【8】,    "wb")=NULL)  exit(0);          for(i=0;  i<10; i+) &#

28、160;      scanf("%d",&j);        fwrite(&j,sizeof(int),1, 【9】  );            fclose(fp);(8) 以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请填空。 &#

29、160;   #include     main()     FILE     *fp;       char    str100;    int   i=0;       if(fp=fopen("text.txt",【10】)=NULL

30、)         printf("can't open this file.n");exit(0);        printf("input astring:n");    gest(str);        while (stri)      &

31、#160; if(stri>='a'&&stri<='z')            stri=【11】;             fputc(stri,fp);            i+; 

32、0;              fclose(fp);        fp=fopen("test.txt",【12】);          fgets(str,100,fp);        printf("%sn",

33、str);        fclose(fp);     (9) 下面程序把从终端读入的文本用作为文本结束标志)复制到一个名为bi.dat的新文件中,请填空。#include <stdio.h>FILE *fp;main() char ch;if(fp=fopen( 【13】)=NULL)exit(0); while (ch=getchar()!='')fputc(ch,fp); 【14】   (10) 以下程序由终端输入一个文件名,然后

34、把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志.请填空.#include <stdio.h>main() FILE * fp;char ch,fname10;printf("lnput the name of filen");gets(fname);if(fp=【15】)=NULL)  printf("Cannot openn");    exit(0);printf("Enter datan");while(ch=getchar()!='#')&#

35、160;  fputc(【16】,fp);  fclose(fp);     11) 下面的程序用来统计文件中字符的个数,请填空。#include <stdio.h>main() FILE *fp;long num=0;if( fp=fopen("fname.dat","r")=NULL) printf( "Can't open file! n"); exit(0);while  【17】    fgetc(fp); num+;printf("num=%dn", num);fclose(fp);          (12)以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。#include <stdio.h>main(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论