IO-目录单元测试题-答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、选择题(单选,每题3分)1.以下哪个mode参数可以读写一个文件中的原有内容(B)[A]r[B]r+[C]w+[D]a+2.如果键盘输入为abcdef,程序如下所示,打印结果应该是(A)charbuffer[6];……fgets(buffer,6,stdin);printf(“%s”,buffer);[A]abcde[B]abcdef[C]abcdef后出现乱码[D]段错误3.以下那一个不是fseek(FILE*stream,longoffset,intwhence)中whence的合法值(B)[A]SEEK_SET[B]SEEK_GET[C]SEEK_CUR[D]SEEK_END4.当用户程序运行时会自动打开(D)个标准流[A]0[B]1[C]2[D]35.下列哪个是不带缓存的(C)[A]stdin[B]stdout[C]stderr[D]都不是6.fread()返回值的含义是(B)[A]读取的字节数[B]读取的对象数[C]缓冲区的首地址[D]07.以二进制形式往文件里写数据应该用的函数是(D)[A]fputs[B]fputc[C]puts[D]fwrite8.文件权限0662另外一种表示方法是(C)[A]rw-rw-rwx[B]r--r--rw-[C]rw-rw--w-[D]rw-rw-r--9.已知一个文件或目录的完整路径和名称,可以直接返回该文件属性信息的函数是(D)[A]stat[B]fstat[C]dstat[D]lstat10.用open()创建新文件时,若该文件存在则可以返回错误信息的参数是(B)[A]O_CREAT[B]O_EXCL[C]O_TRUNC[D]O_NOCTTY11.如果umask的值为022,创建文件时指定的权限是775,则该文件的实际权限为(A)[A]755[B]722[C]753[D]77712.如果要删除一个文件需要哪种权限(C)[A]对文件具有写权限[B]对文件具有读权限[C]对文件所在目录具有写权限[D]对文件所在目录具有读权限13.下列哪个函数不会改变文件位置指针(D)[A]fread[B]fwrite[C]rewind[D]ftell14.lseek()操作成功时返回值的含义是(A)[A]新的文件位移量[B]文件位置指针移动的字节数[C]原先的文件位移量[D]总是015.判断一个32位(0-31)无符号整数value中第i位的值为1的表达式是(B)[A]value&(1i)[B]value&(1i)[C]value|(1i)[D]value|(1i)二、判断题(每题1分)1.puts()将一个以null字符终止的字符串写到标准输出并添加一个新行符(T)2.open()可以用于创建普通文件和设备文件(F)3.fopen()创建新文件时无法指定文件的权限(T)4.lseek()并不引起IO操作(T)5.以”a”方式打开一个流时,可以从该流中读取数据(F)6.fgetc()的返回值是char型(F)7.可以用fflush来强制刷新一个流(T)8.fputs()每次总是输出一行(F)9.文件描述符是系统随机分配的非负整数(F)10.某些库函数的实现不需要系统调用(T)三、简单题(每题6分)1.请描述intopen(constchar*pathname,intflags,mode_tmode)参数和返回值的含义pathname:要新建/打开的文件的路径flags:打开文件的方式mode:新建的文件的访问权限返回值:操作成功返回打开文件的描述符,失败返回-1,并设置errno2.为什么不建议使用gets?gets函数无法指定缓冲区的大小,容易造成缓冲区的溢出3.文件IO和标准IO有什么区别?文件IO:低级IO,没有缓冲机制。操作的对象是文件描述符标准IO:高级IO,有缓冲机制,标准C库中实现。操作的对象是流4.已知一个文件所在的路径和名称,指出三种获取文件大小的方式(列出用到的函数即可)方法一:open-lseek方法二:fopen-fseek-ftell方法三:stat5.如何判断一个文本文件包含多少行?(写出代码,文件名由命令行参数1传入)intch,buf[60],count;FILE*fp;fp=fopen(argv[1],“r”);count=0;方法一(按字符读取)while((ch=fgetc(fp))!=EOF){if(ch==‘\n’)count++;}方法二(按行读取)while(fgets(buf,60,stdin)!=NULL){if(buf[strlen(buf)-1]==‘\n’)count++;}四、问答题(15分)1.请指出Linux中7种文件类型常规文件(-)目录文件(d)字符设备文件(c)块设备文件(b)符号链接(l)管道文件(p)套接字文件(s)2.用文件IO分别实现标准IO中的(r,r+,w,w+,a,a+),文件名由argv[1]传入程序。(O_RDONLY,O_WRONLY,O_RDWR,O_CREAT,O_TRUNC,O_APPEND)fopen(argv[1],“r”):open(argv[1],O_RDONLY)fopen(argv[1],“r+”):open(argv[1],O_RDWR)fopen(argv[1],“w”):open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0666)fopen(argv[1],“w+”):open(argv[1],O_RDWR|O_CREAT|O_TRUNC,0666)fopen(argv[1],“a”):open(argv[1],O_WRONLY|O_CREAT|O_APPEND,0666)fopen(argv[1],“a+”):open(argv[1],O_RDWR|O_CREAT|O_APPEND,0666)

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功