《C语言程序设计教程》补充习题(8)

2019-04-23 19:27

A.fopen() B.fclose() C.fseek() D.rewind() 5.假设fp为文件指针并已指向了某个文件,在没有遇到文件结束标志时,函数feof(fp)的返回值为( )。

A.0 B.1 C.-1 D.一个非0的值

6.在函数fopen()中使用“a+”方式打开了一个已经存在的文件时,以下叙述正确的是( )。

A.文件打开时,原有文件内容不被删除,位置指针移动到文件末尾,可做追加和读操作 B.文件打开时,原有文件内容不被删除,位置指针移动到文件首,可做重写和读操作 C.文件打开时,原有文件内容被删除,只可做写操作 D.以上三种说法都不正确 7.以下程序的运行结果是( )。 #include void main()

{int i,n; FILE *fp;

if ((fp=fopen(\ {printf(\ return; }

for (i=1;i<=10;i++)

fprintf(fp, \ for (i=0;i<5;i++)

{fseek(fp,i*6L,SEEK_SET); fscanf(fp, \ printf(\ }

printf(\ fclose(fp); }

A.1 3 5 7 9 B.2 4 6 8 10 C.3 5 7 9 11 D.1 2 3 4 5 8.下面各选项中能正确实现文件打开操作的是( )。 A.fp=fopen(c:mydir\\info.dat, \B.fp=fopen(c:\\mydir\\info.dat, \ C.fp=fopen(\D.fp=fopen(\9.在C语言中,把文件缓冲区中的数据写入文件的过程称为( )。 A.输入 B.输出 C.修改 D.删除

10.当顺利地执行了文件的关闭命令之后,函数fclose()的返回值是( )。 A.-1 B.1 C.0 D.非零 11.有以下程序: #include main()

36

{FILE *fp; int i,k=4,n=5;

fp=fopen(\ for (i=1;i<4;i++) fprintf(fp, \ fclose(fp);

fp=fopen(\ fscanf(fp, \ printf(\ fclose(fp); }

程序执行后的输出结果是( )。 A.1 2 B.123 5 C.1 23 D.4 5 12.下面4个结论中正确的是( )。

A.在C语言中如果要对文件操作,必须先打开文件 B.在C语言中如果要对文件操作,必须先关闭文件 C.在C语言中对文件的操作实际上没有统一的规定

D.在C语言中如果要对文件操作,即使不打开文件也可以对其进行读/写 13.在C语言中系统定义的标准输出文件是指( )。 A.文本文件 B.二进制文件 C.键盘 D.显示器

14. 若将文件fp的读/写位置指针移动到距离文件头200个字节的位置,正确的操作是( )。

A.fseek(fp,200,0) B.fseek(fp,200,1) C.fseek(fp,200,2) D.ftell(200)

15.已知stu是一个数组,那么语句fread(&stu,3,6,fp);的功能是( )。

A.从fp所指的数据文件中读取6次3个字节的数据,然后存入数组stu中 B.从fp所指的数据文件中读取3次6个字节的数据,然后存入数组stu中

C.从数组stu中读取3次6个字节的数据,然后保存到fp所指的文件中 D.从数组stu中读取6次3个字节的数据,然后保存到fp所指的文件中 16.下列这段程序的功能是( )。 #include main()

{FILE *fout, *fin;

char c, infile[10], outfile[10];

printf(\ scanf(\

printf(\ scanf(\

if ((fin=fopen(infile, \

{printf(\}

if ((fout=fopen(outfile, \

37

{printf(\

}

while((c=fgetc(fin))!=EOF)

fputc(c,fout); fclose(fin); fclose(fout); }

A.分别将两个磁盘文件首尾合并,形成一个新的文件 B.分别显示两个文本文件的内容

C.将一个已知的源文件重命名为另一个新文件 D.把一个文件复制为另一个文件 二、填空题

1.C语言中的文件被看作是一个个的字符(或字节)按照一定的顺序组成的,因此文件又被称为 。

2.C语言中文件的分类有不同的标准。从用户的角度来看,文件可以分为 和 ;从文件的读/写方式来看,文件可以分为 和 ;从文件的编码方式来看,文件可以分为 和 。

3.在MS-DOS方式下,用来显示一个被指定的文本文件的内容使用 命令,用来显示一个或多个被指定文件的目录清单情况用 命令。

4.在C语言定义的多个标准设备文件中, 代表标准输入文件, 代表标准输出文件, 代表错误输出文件, 代表标准辅助设备, 代表标准打印机。

5.专门负责把文件的读/写位置指针重新指回文件首的函数是 ,能够把文件的读/写指针调整到文件中的任意位置的函数是 ,能够获取当前文件的读/写位置字节数的函数是 。

6.C语言系统为每个正在使用的文件在内存中开辟了一个 。 7.C语言对文件操作的一般顺序是 、 和 。

8.在Turbo C中,能在程序中调用一条MS-DOS的内部命令,或者是调用一个可执行文件的库函数是 ,实现文件删除操作的库函数是 ,对文件进行重命名的函数是 。 三、程序分析题

1.C盘下有一个非空的文本文件“test.txt”,其内容如下:“Hello,everyone!” 请问下述程序执行后的输出结果。

#include main()

{FILE *fp; char str[40];

fp=fopen(\ fgets(str,5,fp); printf(\ fclose(fp); }

2.已知三个不同的文本文件file1、file2和file3,它们各自的内容如下: 文件名 文件内容 file1 AAA#

38

file2 BBB# file3 CCC#

假设下面这段源程序对应的文件名为“myprog.c”,经编译和连接后生成的可执行文件名为“myprog.exe”。当在MS-DOS方式下执行下述命令:

myprog file1 file2 file3 则写出屏幕显示的结果。 #include void f(FILE *fp0) {char c;

while((c=fgetc(fp0))!='#')

putchar(c+32); }

main(int argc, char *argv[]) {FILE *fp; int i=1;

while (--argc>0)

{fp=fopen(argv[i++],\ f(fp);

fclose(fp); } }

3.有如下程序,写出执行后的输出结果。 #include main() {FILE *fp;

int i,a[4]={10,20,30,40},b; fp=fopen(\ for (i=0;i<4;i++)

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

fp=fopen(\

fseek(fp,-2L*sizeof(int),SEEK_END);

/*(使文件位置指针从文件尾向前移动2*sizeof(int)个字节)*/ fread(&b,sizeof(int),1,fp); printf(\ fclose(fp); }

四、程序填空题

1.从键盘上输入某个文本文件的文件名,要求把该文件的内容显示在屏幕上,请将该程序补充完整。

#include main() {FILE *fp;

char c,filename[20];

39

printf(\scanf(\

if ((fp=fopen(filename, \

{printf(\}

while (!feof(fp))

{ (1) ; putchar(c); } }

2.下面程序的功能是从键盘上输入一个字符串,把该字符串中的小写字母转化为大写字母,然后输出到文件“eng.txt”文件中,请根据题目要求将程序补充完整。

#include main() {FILE *fp; char str[100]; int i=0;

if ((fp=fopen(\ (1) ))==NULL) {printf(\}

printf(\gets(str);

while(str[i])

{if (str[i]>= 'a'&& str[i]<= 'z') (2) ; fputc(str[i],fp); i++; }

fclose(fp);

fp=fopen(\ (3) ); fgets(str, (4) ,fp); printf(\fclose(fp); }

3.以下程序用来统计C盘根目录下文本文件“file.txt”中字符的个数,请将程序补充完整。

#include main() {FILE *fp; int count=0;

if ((fp=fopen(\ {printf(\}

while(fgetc(fp)!=EOF) (1) ; 40

fclose(fp);

printf(\}

4.下面的程序将磁盘中一个文件复制到另一个文件中,两个文件名在命令行中给出(假设文件名无误),请将程序补充完整。

#include

main(int argc, char * argv[]) {FILE *fp1,*fp2;

if (argc< (1) ) {printf(\}

fp1=fopen(argv[1], \fp2=fopen(argv[2], \while( (2) ) fputc(fgetc(fp1),fp2); fclose(fp2); fclose(fp1); }

41


《C语言程序设计教程》补充习题(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《实用语文》第三 册部分教案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: