收藏 分销(赏)

C语言测试题:文件.doc

上传人:a199****6536 文档编号:1362642 上传时间:2024-04-24 格式:DOC 页数:9 大小:36.01KB 下载积分:6 金币
下载 相关 举报
C语言测试题:文件.doc_第1页
第1页 / 共9页
C语言测试题:文件.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
一、选择题:   (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", "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("%d %d\n", 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)fgetc(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");      WriteStr("t1.dat","end");   }   程序运行后,文件t1.dat中的内容是                          A)start    B)end    C)startend    D)endrt      (5) 有如下程序   #include <stdio.h>   main()   {FILE  *fp1;      fp1=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;  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 %d\n”,k,n);      fclose(fp);   }   执行后输出结果是    A) 1  2        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,a[4]={1,2,3,4},b;     fp=fopen("data.dat","wb");     for(i=0;i<4;i++)  fwrite(&a[i],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("%d\n",B) ;   }   执行后输出结果是    A) 2         B) 1         C) 4         D) 3      (8) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为    A) 0                 B) 1             C) -1             D) 一个非0值      (9) 下列关于C语言数据文件的叙述中正确的是    A) 文件由ASCII码字符序列组成,C语言只能读写文本文件    B) 文件由二进制数据序列组成,C语言只能读写二进制文件    C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件    D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件      (10) 以下叙述中不正确的是    A)C语言中的文本文件以ASCⅡ码形式存储数据    B)C语言中对二进制文件的访问速度比文本文件快    C)C语言中,随机读写方式不适用于文本文件    D)C语言中,顺序读写方式不适用于二进制文件 11) 以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。   #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调用形式错误    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,“%d\n”,i);fprintf(fp,“%d\n”j);   fclose(fp);   fp=fopen(“d1.dat”, “r”);   fp=fscanf(fp,“%d%d”,&k,&n);  printf(“%d%d\n”,k,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的文本文件进行读、写操作,下面符合此要求的函数调用是    A) fopen("A:\user\abc.txt","r")       B) fopen("A:\\user\\abc.txt","r+")    C) fopen("A:\user\abc.txt","rb")      C) fopen("A:\\user\\abc.txt","w")      (15) 下面的程序执行后,文件testt.t中的内容是   #include   <stdio.h>   void fun(char   *fname.,char   *st)   {   FILE  *myf;    int   i;   myf=fopen(fname,“w” );   for(i=0;i<strlen(st); i++)fputc(st[i],myf);   fclose(myf);   }   main()   { fun(“test”,“new world”; fun(“test”,“hello,”0;)    A)hello,       B)new worldhello,    C)new world         D) hello, rld      (16) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是    A) EOF              B) -1                C) 非零值            D) NULL      (17) 在C程序中,可把整型数以二进制形式存放到文件中的函数是    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,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是 【1】 。   #include <stdio.h>   main()   { FILE *fr; char str[40];   ……    fgets(str,5,fr);    printf("%s\n",str);    fclose(fr);   }      (2) 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen(    [2]    );。      (3) 以下程序用来统计文件中字符个数。请填空。    #include  "stdio.h"    main()    { FILE  *fp;   long  num=0L;       if((fp=fopen("fname.dat","r"))==NULL)       {  pirntf("Open error\n");  exit(0);}        while( 【3】 )           { fgetc(fp); num++;}        printf("num=%1d\n",num-1);        fclose(fp);    }      (4) 以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。   FILE  *myf;   ling  f1;   myf= 【4】 (“test.t”,“rb”);     fseek(myf,0,SEEK_END); f1=ftel(myf);   fclose(myf);   printf(“%d\n”,f1);      (5) 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。   #include   “stdio.h”   FILE  *fp;   {  char  ch;      if( (fp=fopen (  【5】  ) )= = NULL)exit(0);       while( (ch=getchar( )) !=’@’) fputc (ch,fp);      fclose(fp);   }      (6) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。     #include <stdio.h>       main(  )       {      FILE    *fp;              char    ch,fname[32];   int  count=0;              printf("Input the filename :"); scanf("%s",fname);           if((fp=fopen(  【6】   ,"w+"))==NULL)           {    printf("Can't open file:%s \n",fname); exit(0);}         printf("Enter data:\n");         while((ch=getchar())!="#"){   fputc(ch,fp);  count++;}         fprintf(  【7】   ,"\n%d\n", count);            fclose(fp);       }      (7) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空.        #include<stdio,h>        FILE  *fp;        main()       {  int i,j;          if((fp=fopen( 【8】,    "wb"))==NULL)  exit(0);            for(i=0;  i<10; i++)         {  scanf("%d",&j);           fwrite(&j,sizeof(int),1, 【9】  );         }        fclose(fp);   }      (8) 以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请填空。        #include        main()        { FILE     *fp;          char    str[100];    int   i=0;          if((fp=fopen("text.txt",【10】))==NULL)           { printf("can't open this file.\n");exit(0);}           printf("input astring:\n");    gest(str);           while (str[i])           { if(str[i]>='a'&&str[i]<='z')               str[i]=【11】;               fputc(str[i],fp);               i++;           }           fclose(fp);           fp=fopen("test.txt",【12】);            fgets(str,100,fp);           printf("%s\n",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) 以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志.请填空.   #include <stdio.h>   main()   { FILE * fp;   char ch,fname[10];   printf("lnput the name of file\n");   gets(fname);   if((fp=【15】)==NULL)    { printf("Cannot open\n");    exit(0);}   printf("Enter data\n");   while((ch=getchar())!='#')   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=%d\n", num);   fclose(fp);             }      (12)以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。   #include <stdio.h>   main(int argc, char *argv)   { FILE *f1,*f2;  char ch;     if(argc< 【18】 )    { printf("Parameters missing!\n");  exit(0); }     if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL))   { printf("Can not open file!\n"); exit(0);}     while( 【19】 )fputc(fgetc(f1),f2);      fclose(f1);  fclose(f2); }   答案:      一、选择题:   01) C  02) D  03) D  04)  B  05) C  06) B  07) D  08) A  09) D  10) D   11) A  12) A  13) D  14) B  15) A  16) C  17) A  18) B    二、填空题:      (1) Hell      (2) “d1.dat”,”rb”或 “d1.dat”,”r+b”或”d1.dat”,”rb+”      (3) !feof(fp)      (4) fopen      (5) “bi.dat”,“w”或“bi.dat”,“wt”或“bi.dat”,“w+t”      (6) fname      (7) fp      (8) "bi.dat"      (9) fp      (10) "w"或"w+"或"wt"或"w+t"或"""wt+"      (11) str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'      (12) "r"或"r+"或"r+t"或"rt+"      (13) "bi.dat","w"      (14) fclose(fp)      (15) fopen(fname,"w")      (16) ch      (17) (!feof(fp))      (18) 3      (19) !feof(f1)  
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服