您好,欢迎来到刀刀网。
搜索
您的当前位置:首页文件习题

文件习题

来源:刀刀网
1、以下叙述不正确的是A 。

A、C语言中的文本文件以ASCII码形式存储数据B、C语言中对二进制文件的访问速度比文本文件快C、C语言中,随机读/写方式不适用文本文件

D、从语言中,顺序读写方式不适用于二进制文件

2、以下叙述不正确的是D 。A、以二进制格式输出文件,则文件内容与内存中完全一致

B、定义:int n=123;若以ASCII文件的格式存放,变量n将在磁盘上占3个字节

C、C语言中,没有输入输出语句,对文件的读写都是用库函数来实现的

D、C语言的文件,数据以记录为界限,便于区分

3、以下叙述正确的是B 。

A、文件打开后不必关闭

B、以文件方式打开一个文件输出时,将换行符转换为回车和换行两个符号

C、以文件方式打开一个文件输入时,将换行符转换为回车和换行两个符号

D、C语言中,对文件的读写是以字为单位的

4、C语言中,文件由A 。

A、字符(字节)序列组成B、记录组成C、数据行组成D、数据块组成

5、默认状态下,习题的标准输入设备是A 。

A.键盘C、软盘

B、显示器D、硬盘

6.C语言中可以处理的文件类型是

A.文本文件和数据文件B.文本文件和二进制文件C.数据文件和二进制文件D.以上都不对

B 。7.以下关于文件的叙述中正确的是

A.对文件操作必须先关闭文件B.对文件操作必须先打开文件

C.对文件的操作顺序没有统一的规定D.以上都不对

。8.在进行文件操作时,写文件的一般含义是。

A.将计算机内存中的信息存入磁盘B.将磁盘中的信息存入计算机内存C.将计算机CPU中的信息存入磁盘D.将磁盘中的信息存入计算机CPU

9.在进行文件操作时,读文件的一般含义是。

A.将计算机内存中的信息存入磁盘B.将磁盘中的信息存入计算机内存C.将计算机CPU中的信息存入磁盘D.将磁盘中的信息存入计算机CPU

10.C语言中,从计算机内存中将数据写入内存,称为。

A.输入C.修改

B.输出D.删除

11.C语言中,将文件中的数据读入到计算机内存中,称为。

A.输入C.修改

B.输出D.删除

12.C语言中,对文件操作的一般步骤是。A.打开文件,操作文件,关闭文件B.操作文件,修改文件,关闭文件C.读/写文件,打开文件,关闭文件D.读文件,写文件,关闭文件

13.下列语句中,把c定义为文件型指针的是。

A.FILE c;C.file c;

B.FILE *c;D.file *c;

14.在C语言中,文件的存取是以单位的,这种文件被称为文件。为15.“FILE *p”的作用是定义一个,其中的“FILE”是在头文件中定义的。

16.在C程序中,文件按存取方式分为和两种类型。17.C语言的文件体系中,最重要的概念是“文件指针”,定义文件指针的方法是*fp,其中fp是一个指向类型结构体的指针变量。

18.C语言的文件体系中,文件指针指向,文件内部指针指向文件内部的。1、以读写方式打开一个已有的文本文件file1,并且以定义FILE *fp,下面fopen函数正确的调用方式是。

A、fp=fopen(“file1”,”r”)B、fp=fopen(“file1”,”r++”)C、fp=fopen(file1”,”rb”)D、fp=fopen(“file1”,”w”)

2.若要打开A磁盘上user子目录下名为abc.exe的文本文件进行读/写操作,下面符合此要求的函数调用是。A.fopen(“A:\\suer\\abc.txt”,”r”)

B.fopen(“A:\\\\suer\\\\abc.txt”,”r+”C.fopen(“A:\\suer\\abc.txt”,”rb”)D.fopen(“A:\\\\suer\\\\abc.txt”,”w”)

)3.打开一个新的二进制文件,若要用fopen函数使该文件既能读又能写,则文件打开时使用的模式是。

A.“rb”B.“wb”C.“b+”

D.“ab”

4.当执行fopen函数是发生错误,则函数的返回值是。

A.-1B.TRUEC.0

D.1

5.当顺利执行了文件关闭操作时,fclose函数的返回值是。A.-1C.0

B.TRUED.1

6.若fp是指向某文件的指针,且以读到此文件的末尾,则库函数feof(fp)的返回值是。A.EOF C.非零值

B.0

D.NULL

7.使用fgetc函数,则打开文件的方式必须是。A.只写

B.追加

C.读或读写

D.B和C都正确

8.当调用fputc函数输出字符成功时,其返回值是。

A.EOFB.1

C.0

D.输出的字符

9.标准函数fgets(s,n,f)的功能是。A.从文件f中读取长度为n的字符串存入指针s所指的内存

B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

C.从文件f中读取n个字符串存存入指针s所指的内存

D.从文件f中读取长度为n-1的字符串存入指针s所指的内

10.标准函数fpets(p1,p2)的功能是。A.从p1指向的文件中读取一个字符串存入p2指向的内存

B.从p2指向的文件中读取一个字符串存入p1指向的内存

C.从p1指向的内存中读取一个字符串存入p2指向的文件中

D.从p2指向的内存中读取一个字符串存入p1指向的文件中

11.在C程序中,可把整数以二进制形式存放到文件中的函数是。

A.fprintf函数B.fread函数C.fwrite函数D.fputc函数

12.fcanf函数的正确调用格式是。

A.fcanf(文件指针,格式字符串,输出列表)B.fcanf(格式字符串,输出列表,文件指针C.fcanf(格式字符串,文件指针,输出列表D.fcanf(文件指针,格式字符串,输入列表)))

13.以下叙述中错误的是。

A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以

B.在程序结束时,应当用fclose函数关闭以打开的文件

C.在利用fread函数从二进制文件中读取数据时,可以用数组名给数组中所有元素读入数据D.不可以用FILE定义指向二进制文件的文件指针

14.fwrite函数的一般调用格式是

A.fwrite(buffer,count,size,fp)B.fwrite(fp,count,size buffer,)C.fwrite(fp,size,count ,buffer)D.fwrite(buffer, size,count,fp)

D 。

15.若定义:int a[5],fp是指向某个已经正确打开了的文件指针,以下函数调用中不正确的是。A.fread(a[0],sizeof(int),5,fp)B.fread(&a[0],5*sizeof(int),1,fp)C.fread(a,sizeof(int),5,fp)D.fread(a,5*sizeof(int),1,fp)

16.fread(buf,,2,fp)的功能是。

A.从fp文件流中读出整数,并存放在buf中B.从fp文件流中读出整数和2,并存放在buf中C.从fp文件流中读出整数个字节的字符,并存放在buf中

D.从fp文件流中读出2个字节的字符,并存放在buf中

17.已知函数的调用形式是:

fread(buffer,size,count,fp),其中buffer代表的是。

A.一个整形变量,代表要读入的数据项总数B.一个指针文件,指向要读取的文件

C.一个指针,指向要读入数据的存放地址D.一个存储区,存放要读的数据项

18.设有以下结构类型:

struct student{char name[8];int no;

float score[4];}st[50];

并且结构体数组st中的每个元素都已经有值。若要将这些元素写道文件fp中,以下格式错误的是。A.fwrite(st,sizeof(struct student),50,fp)

B.fwrite(st,50*sizeof(struct student),1,fp)C.fwrite(st,25*sizeof(struct student),26,fp)

D.for(i=0;i<50;i++)fwrite(st,sizeof(struct student),1,fp)

19.以下程序执行后,文件text.dat中的内容是

#include #include

void fun(char *fname,char *st){

FILE *myf;unsigned int i;

myf=fopen(fname,\"w\");for(i=0;ifputc(st[i],myf);

fclose(myf);}

void main(){

fun(\"test.dat\fun(\"test.dat\}

A.helloB.C.new worldD.hello,rld

new worldhello20.以下程序执行后的输出结果是

#include void main(){

FILE *fp;

int i=20,j=30,k,n;

fp=fopen(\"d1.dat\fprintf(fp,\"%d\\n\fprintf(fp,\"%d\\n\fclose(fp);

fp=fopen(\"d1.dat\fscanf(fp,\"%d%d\printf(\"%d %d\\n\fclose(fp);}

A.20,30B.20,C.30,50D.30,20

5021.以下程序试图将从终端输入的字符输出到文件名为abc.txt的文件中,直到从终端读入字符#时结束输入和输出操作,但程序有错误。程序出错的原因是。#include

void 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调用形式错误C.函数fgetc调用形式错误.输入文件没有关闭

.文件指针stdin没有定义

BD22.程序执行后输出的结果是

#include void main()。

{

}

A.1 2FILE *fp;int i,k=0,n=0;

fp=fopen(\"d1.dat\for(i=1;i<4;i++)

fprintf(fp,\"%d\

fclose(fp);

fp=fopen(\"d1.dat\fscanf(fp,\"%d%d\printf(\"%d %d\\n\fclose(fp);B.123 0C..0 0

1 23D23.以下程序的功能是

#include void main(){

FILE *fp;

char str[]=\"HELLO\";fp=fopen(\"PRN\fputs(str,fp);fclose(fp);}

。A.在屏幕上显示“HELLO”

B.把“HELLO”存入PRN文件中C.在打印机上打印“HELLO”D.以上都不对

24.以下程序是将一个名为old.dat的文件拷贝到一个名为new.dat的新文件中,请填空:

#include void main(){

int c;

FILE *fp1,*fp2;

fp1=fopen(\"old.dat\fp2=fopen(\"new.dat\c=getc(fp1);while(!=EOF){

putc(c,fp2);c=getc(fp1);

}

fclose(fp1);fclose(fp2);}

););

26.以下程序用来统计文件中的字符个数。请填空。

#include #include void main(){

FILE *fp;

long num=0L;

if((fp=fopen(\"test.dat\{

printf(\"Open error!\\n\");exit(0);

}

while(){

fgetc(fp);num++;

}

fclose(fp);

printf(\"num=%d\\n\}

27.下面的程序用来统计文本文件中的字符个数(假定文本文件每行不超过80个字符),请填空。

#include #include void main(){

FILE *fp;

long num=0L;char buff[80];

if((fp=fopen(\"test.dat\{

printf(\"Open error file!\\n\");exit(0);

}

while(!feof(fp)){

fgets();num++;

}

fclose(fp);

printf(\"num=%d\\n\}

28.已有文本文件test.dat,其内容为:hello,everyone!。以下程序的输出结果。

#include void main(){

FILE *fp;char buff[80];

if((fp=fopen(\"test.dat\{

printf(\"Open error!\\n\");exit(0);

}

fgets(buff,5,fp);printf(\"%s\\n\}

29.以下程序将磁盘的一个文件复制到另一个文件中,两个文件名在命令行中给出。请填空。

#include #include

void main(int argc,char *argv[]){

FILE *fp1,*fp2;if(argc<){

printf(\"Parameters missing!\\n\");exit(0);

}

if(((fp1=fopen(argv[1],\"r\"))==NULL)||((fp2=fopen(argv[2],\"w\"))==NULL))

{

printf(\"Open error!\\n\");exit(0);

}

while()fputc(fgetc(fp1),fp2);

fclose(fp1);fclose(fp2);}

33.以下程序的功能是:从键盘输入一个字符串,把该字符串中的小写字母转换为大写字母并输出到文件test.day中,然后从该文件读出字符串并显示。请填空。#include #include void main(){

}

FILE *fp;

char str[100];int i=0;

if((fp=fopen(\"test.dat\{

printf(\"Can't open file.\\n\");exit(0);

}

printf(\"input a string:\");gets(str);while(str[i]){

if(str[i]>='a'&&str[i]<='z')

str[i]-=32;

fputc(str[i],fp);i++;

}

fclose(fp);

fp=fopen(\"test.dat\fgets(str,100,fp);printf(\"%s\\n\fclose(fp);

34.以下程序中,用户从键盘输入一个文件名,然后输入一个字符串(用#结束输入)将其存放到此文件中,形成文本文件,并将字符的个数写道文件尾部。请填空。

#include #include void main(){

FILE *fp;

char ch,fname[32];int count=0;

printf(\"input file name:\");scanf(\"%s\if((fp=fopen(,\"w+\"))==NULL){

printf(\"Can't open file.\\n\");exit(0);

}

printf(\"input a string:\");while((ch=getchar())!='#'){

fputc(ch,fp);count++;

}

fprintf(,\"\\n%d\\n\fclose(fp);}

1.分析程序执行后的输出结果。

#include #include void main(){

FILE *fp;

int i,a[4]={1,2,3,4},b;

fp=fopen(\"data.dat\for(i=0;i<4;i++)

fwrite(&a[i],sizeof(int),1,fp);

fclose(fp);

fp=fopen(\"data.dat\

fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);fclose(fp);

printf(\"%d\\n\}

A.2B.1C.4.3

D以下程序的功能是。#include #include void main(){

FILE *fp;

fp=fopen(\"abc.txt\while(!feof(fp))

if(fgetc(fp)=='*'){

fseek(fp,-1L,SEEK_CUR);fputc('$',fp);

fseek(fp,ftell(fp),SEEK_SET);

}

fclose(fp);}

A.将abc文件中所有的’*’均替换为’$’B.查找abc文件中所有的’C.查找abc文件中所有的’$’D.将abc文件中所有的字符均替换为’$’

’*本执行程序后,文件abc.txt的内容是

#include #include void main(){

FILE *fp;

char *str1=\"first\";char *str2=\"second\";

if((fp=fopen(\"abc.txt\{

printf(\"can't open file\\n\");exit(0);

}

fwrite(str2,6,1,fp);

fseek(fp,0L,SEEK_SET);fwrite(str1,5,1,fp);fclose(fp);}

A.firstB.secondC.fisrstd 。

.为空

D程序设计题:

编写学生成绩管理程序,要求:

学生的信息包括:学号、姓名、年龄,性别、和3门考试成绩,主要功能为:1、从键盘输入N个学生的信息并存入FILE类型的文件中;2、从上述文件中读入学生成绩,并按学号为序打印一张学生成绩情况表。

#include #include #define N 3typedef struct {

int no;

char name[10];int age;char sex;

int deg1,deg2,deg3;}Student;

void fun1(){

FILE *fp;

Student stud;int i;

if((fp=fopen(\"stud.dat\{

printf(\"can't open file\\n\");return;

}

printf(\"输入%d个学生成绩\\n\for(i=0;iprintf(\"第%d个学生:\

scanf(\"%d%s%d%c%d%d%d\&stud.sex,&stud.deg1,&stud.deg2,&stud.deg3);

fwrite(&stud,sizeof(Student),1,fp);

}

fclose(fp);}

void fun2(){

FILE *fp;

Student stud[N],temp;int i,j;

if((fp=fopen(\"stud.dat\{

printf(\"can't open file\\n\");return;

}

for(i=0;ifread(&stud[i],sizeof(Student),1,fp);

for(i=0;itemp=stud[i];

for(j=i-1;j>=0 && temp.nostud[j+1]=stud[j];

stud[j+1]=temp;

}

printf(\"输出学生记录:\\n\");for(i=0;iprintf(\"%d %s %d %c %d %d

%d\\n\eg3);}

#include

int monthPerday[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};struct date{

int year,month,day;}dt;

int day_of_year(int year,int month,int day){

int i,leap;

leap=(year%4==0&&year%100!=0 ||year%400==0);for(i=1;iday+=monthPerday[leap][i];

return day;}

void month_day(int year,int days,int *pmonth,int *pday){

int i,leap;

leap=(year%4==0&&year%100!=0 ||year%400==0);for(i=1;days>monthPerday[leap][i];i++)

days-=monthPerday[leap][i];

*pmonth=i;*pday=days;}

void main(){

int year,month,day;

printf(\"%d\\n\month_day(2000,61,&month,&day);printf(\"%d,%d\\n\}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务