第十二章 文件
一、选择题
1.当已存在一个文件时,执行函数fopen (“”, “r++”)的功能是 。(0级)
A) 打开文件,清除原有的内容
B) 打开文件,只能写入新的内容
C) 打开文件,只能读取原有内容
D) 打开文件,可以读取和写入新的内容
2.若用fopen( )函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是 。(1级)
A)“ab+” B) “wb+” C)“rb+” D)“ab”
3.使用fseek函数可以实现的操作是 。(0级)
A) 改变文件的位置指针的当前位置
B) 文件的顺序读写
C) 文件的随机读写
D) 以上都不对
4.fread(buf,64,2,fp)的功能是 。(1级)
A) 从fp文件流中读出整数64,并存放在buf中;
B) 从fp文件流中读出整数64和2,并存放在buf中;
C) 从fp文件流中读出64个字节的字符,并存放在buf中;
D) 从fp文件流中读出2个64个字节的字符,并存放在buf中;
5.以下程序的功能是 。(1级)
main( )
{FILE *fp; char str[ ]=”HELLO”; fp=fopen(“PRN”,”w”); fpus(str,fp);fclose(fp); }
A) 在屏幕上显示“HELLO”
B) 把“HELLO”存入PRN文件中
C) 在打印机上打印出“HELLO”
D) 以上都不对
6.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是 。(0级)
A) EOF B) 0 C) 非零值 D) NULL
A) EOF B) 0 C) 非零值 D) NULL
7.以下叙述中不正确的是 。(0级)
A) C语言中的文本文件以ASCII码形式存储数据
B) C语言中对二进制位的访问速度比文本文件快
C) C语言中,随机读写方式不使用于文本文件
D) C语言中,顺序读写方式不使用于二进制文件
A) C语言中的文本文件以ASCII码形式存储数据
B) C语言中对二进制位的访问速度比文本文件快
C) C语言中,随机读写方式不使用于文本文件
D) C语言中,顺序读写方式不使用于二进制文件
8.以下程序企图把从终端输入的字符输出到名为的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include <stdio.h>
main()
{ FILE *fout; char ch;
fout=fopen('','w');
ch=fgetc(stdin);
while(ch!='#')
{ fputc(ch,fout);
ch =fgetc(stdin);
#include <stdio.h>
main()
{ FILE *fout; char ch;
fout=fopen('','w');
ch=fgetc(stdin);
while(ch!='#')
{ fputc(ch,fout);
ch =fgetc(stdin);
}
fclose(fout);
}
出错的原因是 。(2级)
A) 函数fopen调用形式有误
B) 输入文件没有关闭
C) 函数fgetc调用形式有误
D) 文件指针stdin没有定义
fclose(fout);
}
出错的原因是 。(2级)
A) 函数fopen调用形式有误
B) 输入文件没有关闭
C) 函数fgetc调用形式有误
D) 文件指针stdin没有定义
9、若fp为文件指针,且文件已正确打开,i为long型变量,以下程序段的输出结果是 。(1级)
fseek(fp, 0, SEEK_END);
i=ftell(fp);
printf("i=%ld\n", i);
A) –1 B) fp所指文件的长度,以字节为单位
C) 0 D) 2
二、填空题
1.C语言中根据数据的组织形式,把文件分为 和 两种。(0级)
2.使用fopen(“abc”,”r+”)打开文件时,若abc文件不存在,则 。(1级)
3.使用fopen(“abc”,”w+”)打开文件时,若abc文件已存在,则 。(1级)
4.C语言中文件的格式化输入输出函数对是 ;文件的数据块输入输出函数对是 ;文件的字符串输入输出函数对是 。(0级)
5.C语言中文件指针设置函数是 ;文件指针位置检测函数是 。(0级)
6.在C程序中,文件可以用 方式存取,也可以用 方式存取。(0级)
7.在C程序中,数据可以用 和 两种代码形式存放。(0级)
8.在C语言中,文件的存取是以 为单位的,这种文件被称作 文件。
(0级)
9.feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为 ,否则为 。(0级)
三、程序填空题
1.下面程序用变量count统计文件中字符的个数。请填空。(2级)
# include <stdio.h>
main( )
{FILE *fp; long count=0;
if((fp=fopen(“letter.dat”, (1) ))= =NULL)
{printf(“cannot open file\n”); exit(0); }
while(!feof(fp)) { (2) ; (3) ; }
printf(“count=%ld\n”, count); fclose(fp); }
2.以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。请填空。(2级)
# include <stdio.h>
main( )
{FILE (1c语言写入txt文件) ; fp1= fopen(“file1.c”, ”r”); fp2= fopen(“file2.c”, ”w”);
while(!feof(fp1)) putchar(getc (fp1)); (2)
while(!feof(fp1)) putc (3) ;
fclose(fp1); fclose(fp2); }
3.以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件
文件中形成文本文件,并将字符的个数写到文件尾部。(2级)
#include <stdio.h>
void main(void)
{
#include <stdio.h>
void main(void)
{
FILE *fp;
char ch,fname[32]; int count=0;
printf("Input the filename :");scanf("%s",fname);
if ((fp=fopen( (1) ,"w+"))==NULL) {
char ch,fname[32]; int count=0;
printf("Input the filename :");scanf("%s",fname);
if ((fp=fopen( (1) ,"w+"))==NULL) {
printf("Can't open file:%s \n",fname);
exit(0);
}
printf("Enter data:\n");
while ((ch=getchar())!="#") {
printf("Enter data:\n");
while ((ch=getchar())!="#") {
fputc(ch,fp);
count++;
}
fprintf( (2) ,"\n%d\n",count);
fclose(fp);
fprintf( (2) ,"\n%d\n",count);
fclose(fp);
}
四、编程题
1.编写一个程序,由键盘输入一个文件名,然后把从键盘输入的字符依次存放到该文件中,用‘#’作为结束输入的标志。(2级)
2.编写一个程序,建立一个abc文本文件,向其中写入“this is a test”字符串,然后显示该文件的内容。(2级)
3.编写一程序,查指定的文本文件中某个单词出现的行号及该行的内容。(2级)
4.编写一程序fcat.c,把命令行中指定的多个文本文件连接成一个文件。(2级)例如:
fcat file1 file2 file3
它把文本文件file1、file2和file3连接成一个文件,连接后的文件名为file1。
5.编写一个程序,将指定的文本文件中某单词替换成另一个单词。(2级)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论