第9章 输入输出与文件处理
- 格式:pdf
- 大小:532.30 KB
- 文档页数:38
第九章输入、输出及文件管理一、选择题1.以下叙述中错误的是______。
A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据答案:C2.有以下程序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答案:D3.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是______。
A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp) 答案:D4.有以下程序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答案:B5. 标准函数 fgets(s, n, f) 的功能是A) 从文件f中读取长度为n的字符串存入指针s所指的内存B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C) 从文件f中读取n个字符串存入指针s所指的内存D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存答案:B6. 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是A) EOF B) -1 C) 非零值D) NULL答案:D7. 若要打开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") D) fopen("A:\\user\\abc.txt","w") 答案:B8. 程序中头文件typel.h 的内容是:#define N 5#define M1 N*3程序如下:#include <stdio.h>#define "type1.h"#define M2 N*2void main(){int i;i=M1+M2;printf("%d\n",i);}程序编译后运行的输出结果是:A) 10 B) 20 C) 25 D) 30答案:C9. 有以下程序#include <stdio.h>void 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");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答案:A10. 以下叙述中错误的是A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以B) 在程序结束时,应当用fclose函数关闭已打开的文件C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D) 不可以用FILE定义指向二进制文件的文件指针答案:D11. 以下叙述中不正确的是A)C语言中的文本文件以ASCⅡ码形式存储数据B)C语言中对二进制文件的访问速度比文本文件快C)C语言中,随机读写方式不适用于文本文件D)C语言中,顺序读写方式不适用于二进制文件答案:D12. 有以下程序#include <stdio.h>void 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答案:B13. 有如下程序#include <stdio.h>void 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答案:C14. fopen( )函数的mode取值”w+”和”a+”时都可以写入数据,它们之间的差别是。
第九章 Java输入输出操作9.1 Java 输入输出流所有的程序语言都提及与本机文件系统交互的方式;Java也不例外。
我们将看看Java 是怎样处理标准文件输入输出的(包括stdin,stout,stderr)。
当你在网络上开发小程序时,你必须注意直接文件输入输出是不安全因素的关键。
大多数用户设置他们的浏览器,可让你自由的访问他们的文件系统,但有的不让你访问。
当然,如果你开发你内部的应用程序,你也许需要直接访问文件。
标准输入输出Unix的用户,或其他基于命令行系统的用户(如DOS),都知道标准输入输出的含义。
标准输入文件是键盘,标准输出文件是你的终端屏幕。
标准错误输出文件也指向屏幕,如果有必要,它也可以指向另一个文件以便和正常输出区分。
系统类Java通过系统类达到访问标准输入输出的功能。
上面提到的三个文件在这个系统类中实现:Stdin System.in作为InputStream类的一个实例来实现stdin,你可以使用read()和skip(long n)两个成员函数。
read()让你从输入中读一个字节,skip(long n)让你在输入中跳过n个字节。
Stout System.out作为PrintStream来实现stdout,你可以使用print()和println()两个成员函数。
这两个函数支持Java的任意基本类型作为参数。
Stderr System.err同stdout一样实现stderr。
象System.out一样,你可以访问PrintStream 成员函数。
9.2 标准输入输出例子import java.io.* class myCat{public void main(String args[]) throws IOException{int b;int count = 0;while ((b = System.in.read()) != -1){count++;System.out.print((char)b);}System.out.println(); //blank line System.err.println("counted"+count+"total bytes.");}}9.3 普通输入输出类除了基本的键盘输入和屏幕输出外,我们还需要联系文件的输入输出。