Java认证考试综合练习

单选题InputStream对象的方法read(byte[] buffer,int offset,int length)的返回值的含义是哪项?()A 固定长度的字节数B 1C -1D 运行时异常被抛出

题目
单选题
InputStream对象的方法read(byte[] buffer,int offset,int length)的返回值的含义是哪项?()
A

固定长度的字节数

B

1

C

-1

D

运行时异常被抛出

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面哪个不是InputStream类中的方法?

A.int read(byte[D

B.void flush()

C.void close()

D.int available()


正确答案:B
解析:本题考查InputStream,类中的方法。InputStream类中包括的主要方法有: int read(byte[]),该方法从输入流中读多个字节,存入字节数组;void close()方法用来关闭输入流,并释放相关资源:int available()方法返回输入流中可读字节数;long skip(long n)方法从输入流中最多向后跳n个字节,返回实际跳过字节数。还有其他方法,都应该有所了解,选项B中void flush()并不属于InputStream类中的方法。不仅要记住有哪些方法,也要理解其作用,并用于实际编写程序中。

第2题:

InputStream对象的方法read(byte[]buffer,intoffset,intlength)的返回值的含义是哪项?()

A.固定长度的字节数

B.1

C.-1

D.运行时异常被抛出


参考答案:A

第3题:

●试题四

阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量 )。其结构为:

typedef struct{char fname [256]/*原始文件名*/

long length;/*原始文件长度(字节数)*/

long offset;/*原始文件在合并文件中的位置(偏移量)*/

}FileInfo;

在合并文件最后存储如下一个特殊的标志信息作为合并文件的结束标记:

FileInfo EndF1ag={"Combined File",0,_offset};

其中_offset是第一个原始文件的控制信息在合并文件中的位置(偏移量)。

启动本程序的命令行的格式是:

程序名合并文件名[原始文件名]

如果不指定原始文件名,默认恢复合并文件中的所有原始文件。

程序中涉及的部分文件操作的库函数简要说明如下:

int fread (void *buffer,int size,int count,FILE *fbin):从二进制文件流fbin中读取count块长度为size字节的数据块到buffer指向的存储区。返回值为实际读取的数据块数。

int fwrite(void *buffer,int size,int count,FILE *fbin):各参数和返回值的意义与fread相同,但对文件进行写操作。

int fseek(FILE *fbin,long offset,int position):将文件流fbin的读/写位置以position为基准移动offset字节。position的值可以是SEEK_SET(文件头),SEEK_CUR(当前位置),SEEK_END(文件尾);offset为正,表示向文件尾方向移动,为负表示向文件头方向移动,为零表示到基准位置。

long ftell(FILE *fbin):返回文件流fbin的当前读/写位置(相对于文件头的偏移量)。上述偏移量均以字节为单位,即偏移字节数。

【程序】

#include <stdio.h>

#include<string.h>

typedef struct{char fname[256];long length;long offset;

}FileInfo;

void copyfile(FILE *fin,FILE *fout,int fsize)

{char buf[1024];int siz=1024;

while(fsize !=0){/*每次复制siz个字节,直至复制完fsize个字节*/

if(siz >fsize) (1) ;

fread(buf,1,siz,fin);fwrite(buf,1,siz,fout);

fsize= (2) ;}

}

int dofile(FILE *fin,FileInfo *inp)

{ long offset;

FILE *fout;

if((fout=fopen(inp->fname,"wb"))==NULL){

printf("创建文件错误:%s\n",inp->fname);

return 1;

}

offset= (3) ;/*保留合并文件读/写位置*/

fseek( (4) );/*定位于被恢复文件首*/

copyfile(fin,fout,inp->length);

fclose(fout);

printf("\n---文件名:%\n文件长:%1d.

\n",inp->fname,inp->length);

(5) ;/*恢复合并文件读/写位置*/

return 0;

}

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

{FileInfo finfo;

char fname[256];FILE *fcmbn;

if(argc<2){printf("输入合并文件名:");scanf("%s",fname);}

else strcpy(fname,argv[1]);

if((fcmbn=fopen(fname,"rb"))==NULL){

printf("文件打开错误:%s\n",fname);return 1;

}

fseek(fcmbn,-sizeof(FileInfo),SEEK_END);/*定位于合并文件末尾的标志信息*/

fread(&finfo,1,sizeof(FileInfo),fcmbn);

if(finfo.length!=0 || strcmp(finfo.fnane,"CombinedFile")){

printf("指定的文件不是合法的合并文件\n");

fclose(fcmbn);return 2;

}

fseek(fcmbn,finfo.offset,SEEK_SET);/*定位于首个原始文件的控制信息*/

for(;;){/*恢复一个(argc>2)或全部(argc=2)原始文件*/

fread(&finfo,1,sizeof(FileInfo),fcmbn);

if(finfo.length==0)break;

if(argc>2 && strcmp(finfo.fname,argv[2]))continue;

if(dofile(fcmbn,&finfo)!=0)break;

}

fcolse(fcmbn);return 0;

}


正确答案:

●试题四

【答案】(1)siz=fsize(2)fsize-siz(3)ftell(fin)(4)fininp->offsetSEEK_SET

(5)fseek(fin offsetSEEK_SET)

【解析】(1)copyfile()每次拷贝min(sizfsize)个单元,并修改fsize以记录已拷贝的字节数,最终完成fsize个字节的拷贝。本题进行sizfsize最小关系的判断。(2)拷贝完siz个字节后,对fsize进行修改,使其代表当前未拷贝的字节数。(3)dofile()首先创建一个新的文件fout,用于存储被恢复的文件。然后先保存文件的读写位置(offsetftell(fin)),再获得被恢复文件在合并文件中的位置(fseek(fin inp->offseSEEK_SET)),再进行拷贝。最后恢复合并文件的读写位置。本句保留合并文件的读写位置。(4)对被恢复文件进行定位。(5)对合并文件的读写位置进行恢复。

 

第4题:

基本数据类型精度从低到高排列正确的是()

A.byte short int float double

B.byte short int double float

C. short byte int float double

D. short byte int double float


正确答案:A

第5题:

下列______选项不是InputStream类中的方法。

A.public abstract int read() throws IOException

B.public final void writeInt (int V)throws IOException

C.public int available() throws IOException

D.public void close() throws IOException


正确答案:B
解析:选项B中的publicfinalvoidwriteInt(intv)throwsIOException方法是OutputStream类中的方法。

第6题:

下面( )不是InputStream类中的方法。

A.int read(byte[])

B.void flush

C.void close

D.int available


正确答案:B
B。【解析】本题考查InputStream类中的方法。InputStream类中包括的主要方法有:intread(byte[]),该方法从输入流中读多字节,存入字节数组;voidclose方法用来关闭输入流,并释放相关资源;intavailable方法返回输入流中可读字节数;longskip(longn)方法从输入流中最多向后跳n字节,返回实际跳过字节数。选项B中voidflush并不属于InputStream类中的方法。

第7题:

下列不属于FileInputStream输入流的read()成员函数的是( )。

A.int read (byte b[],int offset,int len)

B.int read (int line)

C.int read ()

D.int read (byte b[])


正确答案:B
解析:打开FileInputStream输入流,就可以从里面读取信息。read()成员函数有以下几种:int read();int read (byte b[])和int read (byte b[],int offset,int len)。

第8题:

下面哪一个不是InputStream类中的方法?

A.int read(byte[ ])

B.void flush( )

C.void close( )

D.int available( )


正确答案:B
解析: InputStream类所包括的主要方法有public int read(byte[ ]b)throws IOException、long skip(long n)、public int available( )throws IOException和public void close( )throws IOException。选项B中的void flush( )方法并不属于InputStream类中的方法。

第9题:

下面( )不是InputStream类中的方法。

A.int read(byte[])

B.void flush( )

C.void close( )

D.int available( )


正确答案:B
本题考查InputStream类中的方法。In-putStream类中包括的主要方法有:intread(byte[]),该方法从输入流中读多字节,存入字节数组;voidclose()方法用来关闭输入流,并释放相关资源;intavailable()方法返回输入流中可读字节数;longskip(longn)方法从输入流中最多向后跳n字节,返回实际跳过字节数。选项B中voidflush()并不属于InputStream类中的方法。

第10题:

下面哪个不是InputStream类中的方法?

A.int read(byte[])

B.void flush()

C.void close()

D.int available()


正确答案:B
解析:本题考查InputStream类中的方法。lnpmstream类中包括的主要方法有:int read(byte[]),该方法从输入流中读多个字节,存入字节数组;void close()方法用来关闭输入流,并释放相关资源:int available()方法返回输入流中可读字节数:long skip(long n)方法从输入流中最多向后跳n个字节,返回实际跳过字节数。还有其他方法,都应该有所了解,选项B中void flush()并不属于InputStream类中的方法。不仅要记住有哪些方法,也要理解其作用,并用于实际编写程序中。

更多相关问题