C语言测试题:文件

一、选择题

〔1〕以下表达中错误的选项是          C
         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);
         }
程序运行后的输出结果是    D
A〕0  0   
B〕123  45  
C〕1  4   
D〕1  2

(3)以下与函数fseek(fp,0L,SEEK_SET)有一样作用的是       D      
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中的容是         B             
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中的容为   C
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);
}
 执行后输出结果是   B
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) ;
}
  执行后输出结果是   D
A) 2     
B) 1     
C) 4     
D) 3

(8) 假设fp已正确定义并指向某个文件,当未遇到该文件完毕标志时函数feof(fp)的值为D
A) 0             
B) 1         
C) -1         
D) 一个非0值

(9) 以下关于C语言数据文件的表达中正确的选项是   A
A) 文件由ASCII码字符序列组成,C语言只能读写文本文件
B) 文件由二进制数据序列组成,C语言只能读写二进制文件
C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

(10) 以下表达中不正确的选项是  D
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
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
A) 20  30    
B) 20  50  
C) 30  50   
D) 30  20

(13) 以下表达中错误的选项是D
A) 二进制文件翻开后可以先读文件的末尾,而顺序文件不可以
B) 在程序完毕时,应当用fclose函数关闭已翻开的文件
C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D) 不可以用FILE定义指向二进制文件的文件指针

(14) 假设要翻开A盘上user子目录下名为abc.txt的文本文件进展读、写操作,下面符合此要求的函数调用是B
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中的容是A
#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)的返回值是C
A) EOF          
B) -1            
C) 非零值        
D) NULL

(17) 在C程序中,可把整型数以二进制形式存放到文件中的函数是A
A) fprintf函数 
B) fread函数     
C) fwrite函数   
D) fputc函数

(18) 标准函数 fgets(s, n, f) 的功能是B
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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557590.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

这些都伦敦银结算时间 第二个尤其值得关注

伦敦银结算时间是什么时候呢&#xff1f;伦敦银虽说号称是24小时交易的品种&#xff0c;实际上每个平台都会在一个交易日中选定一定的时间停盘进行结算&#xff0c;在这些时间投资者没法交易&#xff0c;市场也不会波动。那么&#xff0c;伦敦银结算时间是什么时候&#xff1f;…

京东云主机和云服务器有啥区别?轻量云主机就是轻量应用服务器吗?

京东云主机和云服务器有啥区别&#xff1f;轻量云主机就是轻量应用服务器吗&#xff1f;云主机就是云服务器的意思&#xff0c;是京东云给自家云服务器取的名字&#xff0c;阿里云叫云服务器ECS&#xff0c;腾讯云叫云服务器CVM&#xff0c;京东云服务器叫云主机&#xff0c;京…

人数识别 人员超员识别系统 作业区域超员预警系统 ai#YOLO视觉

在当今复杂的生产作业与社会管理场景中&#xff0c;人员管理的精准性和高效性变得愈发重要。人数识别、人员超员识别系统、作业区域超员预警系统以及特殊岗位人员达标监测等&#xff0c;都是保障安全生产、提高运营效率和维护社会秩序的关键要素。随着人工智能(AI)技术的飞速发…

客户案例 | Airbus Helicopters借助仿真技术实现节能安全的驾驶舱设计

大家都知道&#xff0c;太阳眩光、驶近的车辆照射的灯光或雨水的反射会分散注意力。对于驾驶员来说光学失真更具挑战性&#xff0c;因为这关乎驾驶安全。除了外部照明条件外&#xff0c;驾驶员通常还会面临‌内部照明‌挑战&#xff0c;比如车辆指示灯面板上的重要信息无法清晰…

Ambari 你想知道的都在这里

&#x1f468;‍&#x1f4bb; 关于我 大家好&#xff0c;我叫小饕。一位末流系统架构师&#xff0c;深耕大数据技术多年&#xff0c;对前端、后端、中间件和运维有着丰富的经验和深刻的理解。在过去的几年里&#xff0c;我主要专注于Ambari的研究和探索&#xff0c;通过不断的…

证件照片一键生成软件有哪些?这里看5个

想要一张完美的证件照&#xff0c;却不想花大价钱去照相馆&#xff1f; 别担心&#xff0c;现在有多种免费应用可以帮助你在家轻松制作证件照片。 从调整尺寸到修改背景&#xff0c;这些应用功能齐全&#xff0c;让你的证件照看起来既专业又符合要求。 下面就来看看这5个不花…

C#将部分Controls数据导入对象并存入ini中

目录 1.遍历控件和属性得到控件的值 2.利用FieldInfo的getSet函数设置类对象数据 3.Ini简易类库编写 4.存入对象转换为json存入ini 5.效果展示 在日常的Winform设计工作中&#xff0c;将控件中的数据导出到对应属性或者字段中&#xff0c;再进行保存是经常会用到的技巧&#x…

【HTML并不简单】笔记3-你不知道的列表元素和html、body

文章目录 无序列表menuol的其他属性typestart和valuereversed 定义列表dl、dt、ddhtml与body关联性overflow 桌面端和移动端的滚动条 《HTML并不简单&#xff1a;Web前端开发精进秘籍》张鑫旭 笔记 无序列表menu <menu>元素可以看成是<ul>元素的平行替代&#xff…

网源高科产品总监郎磊受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 北京网源高科软件有限公司产品交付部门产品总监、行业解决方案首席咨询顾问郎磊先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为“什么样的AI工具&#xff0c;才是项目经理的…

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【285-296】

文章目录 285. 为什么需要继承286. 继承原理图287. 继承快速入门288. 289. 290. 291. 292. 继承使用细节1,2,3,4,5288.1 继承给编程带来的便利288.2 继承的深入讨论/细节问题 293. 继承本质详解294. 继承课堂练习1295. 继承课堂练习2296. 继承课堂练习3 285. 为什么需要继承 28…

相亲交友系统的商业模式探讨

在撰写关于相亲交友系统的商业模式探讨时&#xff0c;附带示例代码可能不太合适&#xff0c;因为软文通常是面向非技术读者&#xff0c;讲述商业模式、用户体验等方面的内容。不过&#xff0c;为了满足您的需求&#xff0c;我可以尝试结合一些简单的伪代码&#xff08;模拟代码…

织物缺陷分割系统源码&数据集分享

织物缺陷分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-Faster-EMA&#xff06;yolov8-seg-act等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al lnn…

UE5安卓,多指点击时会调出控制台

参考文章&#xff1a; How to turn off "console window" on swipe (my Lemurs keep opening it!) - Platform & Builds / Mobile - Epic Developer Community Forums (unrealengine.com) 准确来说是4只手指同时在屏幕中按下。这个控制台能像编辑器那样&#xf…

vue项目刷新后h5样式失效

vue项目刷新后h5样式失效 今天遇到一个bug&#xff0c;有一个Element的message组件&#xff0c;用它做的一个进度条&#xff0c;它是写在一个页面上&#xff0c;并且是用js控制dom元素的 web端一切正常&#xff0c;h5如果从别的页面跳过来也正常&#xff0c;但是&#xff0c;H…

IT行业哪些证书可以应对就业难?

作为IT运维专业人士&#xff0c;持续增强自身的专业技能和知识是提升职场竞争力、实现升职加薪的关键途径。 下面为大家搜罗了5本适合IT运维人员考取的证书。 一、ITSS认证 ITSS&#xff0c;即信息技术服务标准&#xff0c;是一套涵盖了IT服务领域的标准库和方法论。 这是我…

Python 卸载所有的包

Python 卸载所有的包 引言正文 引言 可能很少有小伙伴会遇到这个问题&#xff0c;当我们错误安装了一些包后&#xff0c;由于包之间有相互关联&#xff0c;导致一些已经安装的包无法使用&#xff0c;而由于我们已经安装了很多包&#xff0c;它们的名字我们并不完全知道&#x…

在使用yarn下载依赖时会报超时问题,解决贴

在使用yarn下载依赖时会报超时问题&#xff0c;解决贴 这句话表示网络超时 There appears to be trouble with your network connection. Retrying1、我们先使用命令查看使用使用的是国外的镜像。 yarn config list2、然后查看代码 3、更换镜像&#xff0c;设置使用国内镜像…

element ui 使用

文章目录 element ui1.组件内部传值使用说明&#xff1a;当我们在app组件中使用movie组件&#xff0c;我们希望movie组件的内容是由app组件来定义&#xff0c;就可以使用prop关键字1.在app组件中导入movie组件并且使用2.在movie中写死数据测试3.使用date测试4.使用props 2.elem…

Python系统教程005(字符串的格式化输出)

知识回顾 1、默认情况下&#xff0c;input函数接收的数据是字符串类型。 2、字符串类型的关键词是str。 3、\n和\t都是转义字符&#xff0c;\n用来换行&#xff0c;\t用来留出一段固定长度的空白。 4、type函数能够用来查看变量的数据类型 5、数据类型的转换&#xff0c;举…

《Python 安装指南:开启编程之旅》

《Python 安装指南&#xff1a;开启编程之旅》 在当今数字化的时代&#xff0c;编程已经成为一项越来越重要的技能。而 Python 作为一种简洁、高效且功能强大的编程语言&#xff0c;受到了众多开发者的青睐。无论是数据科学、人工智能、Web 开发还是自动化脚本编写&#xff0c…