C语言测试题:文件_第1页
C语言测试题:文件_第2页
C语言测试题:文件_第3页
C语言测试题:文件_第4页
C语言测试题:文件_第5页
已阅读5页,还剩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", "w+");for(i=1; i<6; i+) fprintf(fp,"%d ",i);if(i%3=0) fprin

2、tf(fp,"n");rewind(fp);fscanf(fp, "%d%d", &k, &n); printf("%d %dn", k, n); fclose(fp);程序运行后的输出结果是A ) 0 0B) 123 45C) 1 4D ) 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 WriteSt

3、r(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 ) startB) endC) startendD ) endrt(5) 有如下程序#include <stdio.h>main()FILE *fp1; fp1=fopen(&qu

4、ot;f1.txt","w"); fprintf(fp1,"abc");fclose(fp1);若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为A) goodabcB) abcdC) abcD) 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(

5、 “d1.dat ”, ”r”);fscanf(fp, ”%d%”d ,&k,&n); printf( “%dd n”,k,n); fclose(fp); 执行后输出结果是A) 1 2B) 123 0C) 1 23D) 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",

6、"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) 2B) 1C) 4D) 3(8) 若 fp 已正确

7、定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp) 的值为A) 0B) 1C) 1D) 一个非 0 值(9) 下列关于 C 语言数据文件的叙述中正确的是A) 文件由 ASCII 码字符序列组成, C 语言只能读写文本文件B) 文件由二进制数据序列组成, C 语言只能读写二进制文件C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(10) 以下叙述中不正确的是A )C语言中的文本文件以 ASC n码形式存储数据B) C语言中对二进制文件的访问速度比文本文件快C) C语言中,随机读写方式不适用于

8、文本文件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 调用形式错

9、误 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, “n%”d,i);fprintf(fp,n“”%j);dfclose(fp);fp=fopen( “ d1.dat ” , “ r ” );fp=fscanf(fp, “%d%,”d &k,&n); printf( “%d%nd”,k,n); fclose(fp); 程序

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

11、("A:userabc.txt","r+")C) fopen("A:userabc.txt","rb")C) fopen("A:userabc.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(

12、sti,myf);fclose(myf);main() fun( “ test ” , “ new world ” ; fun( “ test ” , “ hello, ” 0;)A ) hello ,B) new worldhello ,C) new worldD ) hello, rld(16) 若 fp 是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp) 的返回值是A) EOFB) 1C) 非零值D) NULL(17) 在 C 程序中 ,可把整型数以二进制形式存放到文件中的函数是A) fprintf 函数B) fread 函数C) fwrite 函数D) fputc 函数(

13、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

14、 *fr; char str40;fgets(str,5,fr);printf("%sn",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 errorn&q

15、uot;); exit(0); while( 【 3】 ) fgetc(fp); num+; printf("num=%1dn",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( “ %nd” ,f1);(5)

16、下面程序把从终端读入的文本(用 作为文本结束标志)输出到一个名为bi.dat 的新文件中。请填空。#include “ stdio.h ”FILE *fp; char ch;if( (fp=fopen ( 【 5】 ) )= = NULL)exit(0); while( (ch=getchar( ) != ' ' f)putc (ch,fp); fclose(fp);(6) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。#include <stdio.h> main( ) FI

17、LE *fp ;char ch , fname32 ; 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

18、, fp); count+ ; fprintf( 【 7】 , "n%dn" , 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, 【

19、 9】 );fclose(fp);(8) 以下程序的功能是 :从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母 ,输出到文件 test.txt 中 ,然后从该文件读出字符串并显示出来。请填空。#includemain() FILE *fp;char str100; 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); w

20、hile (stri) if(stri>='a'&&stri<='z')stri= 【11】 ; fputc(stri,fp); i+;fclose(fp);fp=fopen("test.txt", 【12】 );fgets(str,100,fp); printf("%sn",str);fclose(fp);(9) 下面程序把从终端读入的文本用作为文本结束标志)复制到一个名为bi.dat 的新文件中,请填空。#include <stdio.h>FILE *fp;main() char

21、 ch;if(fp=fopen( 【 13】 )=NULL)exit(0);while (ch=getchar()!=' ')fputc(ch,fp);【14】(10) 以下程序由终端输入一个文件名 ,然后把从终端键盘输入的字符依次存放到该文件 中,用 #作为结束输入的标志 .请填空 .#include <stdio.h>main() FILE * fp;char ch,fname10;printf("lnput the name of filen");gets(fname);if(fp= 【15】 )=NULL) printf("Ca

22、nnot openn"); exit(0); printf("Enter datan");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")

23、; exit(0);while 【 17】 fgetc(fp); num+; printf("num=%dn", 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(argv1,"r") = = NULL)|(f2=fopen(argv2,"w") = = NULL)

温馨提示

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

评论

0/150

提交评论