第十章 文件Word文件下载.docx
- 文档编号:17395361
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:11
- 大小:19.67KB
第十章 文件Word文件下载.docx
《第十章 文件Word文件下载.docx》由会员分享,可在线阅读,更多相关《第十章 文件Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
B."
W"
C."
D."
4.用(A)函数打开文件,操作完毕后用(C)函数关闭它。
A.fopenB.openC.fcloseD.close
5.如果要打开C盘file文件夹下的abc.dat文件,fopen函数中第一个参数应为(D)。
A.c:
file\abc.datB.c:
\file\abc.dat
C."
c:
\file\abc.dat"
D."
\\file\\abc.dat"
6.以“只读”方式打开文本文件c:
\xy.txt,下列语句中哪一个是正确的(B)。
A.fp=fopen("
\\xy.txt"
"
);
B.fp=fopen("
C.fp=fopen("
wb"
D.fp=fopen("
\xy.txt"
7.fseek函数可以实现的操作是(A)。
A.改变文件的位置指针的当前位置B.文件的顺序读写
C.文件的随机读写D.以上都不对
8.检测fp文件流的文件位置指针在文件头的条件是(B)。
A.fp=0B.ftell(fp)=0C.fseek(fp,0,SEEK_SET)D.feof(fp)
9.以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include“stdio.h”
main()
{FILE*fout;
charch;
fout=fopen('
abc.txt'
'
w'
ch=fgetc(stdin);
while(ch!
='
#'
)
{fputc(ch,fout);
}
fclose(fout);
出错的原因是A
A.函数fopen调用形式错误B.输入文件没有关闭
C.函数fgetc调用形式错误D.文件指针stdin没有定义
四、程序填空题
1.以下程序将一个磁盘文件中的信息复制到另一个磁盘文件中。
#include"
stdio.h"
main()
{FILE*in,*out;
charinfile[10],outfile[10];
printf("
Entertheinfilename\n"
scanf("
%s"
【1】infile);
Entertheoutfilename\n"
outfile);
if((【2】in=fopen(“””))==NULL){
cannotopeninfile%s\n"
infile);
exit(0);
}
if((out=fopen(outfile,"
【3】"
))==NULL){
cannotopenoutfile%s\n"
while(【4】)
fputc(【5】,out);
fclose(in);
fclose(out);
}
2.当前目录下存放着文本文件from.txt,将其中除数字以外的内容显示在屏幕上。
#include<
stdi0.h>
stdlib.h>
voidmain()
{FILE*fr;
intch;
if(【1】){
Cannotopenfile--form.txt.\n"
exit(0);
while(!
feof(fr)){
【2】;
if(【3】)
putchar(ch);
fclose(fr);
3.从键盘输入一批以-1结束的整数,将其中的奇数写入当前目录下的文本文件res.txt。
stdio.h>
stdlib.h>
voidmain()
{intx;
【1】;
if((fp=fopen("
res.txt"
w"
))==NULL){
Cannotopenfile!
\n"
%d"
x);
while(【2】){
if(x%2!
=0)【3】;
【4】;
fclose(fp);
4.本文件a.dat、b.dat中每行存放一个数且均按从小到大存放。
下列程序将这两个文件中的数据合并到c.dat,文件c.dat中的数据也要从小到大存放。
请填空,将程序补充完整、正确(若文件a.dat数据为1、6、9、18、27、35,文件b.dat数据为10、23、25、39、61,则文件c.dat中数据应为1、6、9、10、18、23、25、27、35、39、61)。
#include<
voidmain()
{FILE*f1,*f2,*f3;
intx,y;
if((f1=fopen("
a.dat"
"
))==NULL)
{printf("
Cannotopena.dat!
\n"
}
if((f2=fopen("
b.dat"
{printf("
Cannotopenb.dat!
if(【1】)==NULL}
Cannotopenc.dat!
fscanf(f1,"
【2】;
while(!
feof(f1)&
&
!
feof(f2))
if(【3】)
{fprintf(f3,"
%d\n"
x);
fscanf(f1,"
else{fprintf(f3,"
y);
fscanf(f2,"
y);
if(feof(f1))
{【4】fprintf(f3,”%d”,y);
feof(f2))
{fscanf(f2,"
【5】;
else{fprintf(f3,【6】);
feof(f1))
{【7】;
fprintf(f3,"
fclose(f1);
fclose(f2);
fclose(f3);
五、程序阅读题
1.已有文本文件test.txt,其中的内容为:
Hello,everyone!
。
以下程序中,文件test.txt已正确为"
读"
而打开,由文件指针fr指向该文件,则程序的输出结果是:
charstr[40];
……
fgets(str,5,fr);
printf("
%s\n"
str);
fclose(fr);
hell
2.假设读写文件的操作能正常完成,则程序的输出结果是:
{charch,*s=”ACEDB”;
intx;
FILE*in;
if((in=fopen(“file.txt”,”w”))!
=NULL)
while(*s!
=’\0’)
fputc(*s++,in);
if((in=fopen(“file.txt”,”r”))!
while((ch=fgetc(in))!
=EOF){
switch(ch){
case’A’:
x=95;
break;
case’B’:
x=85;
case’C’:
x=75;
case’D’:
x=60;
default:
x=0;
break;
print(“%d#”,x);
3.以下程序完成的功能是:
{
FILE*fp;
charfilename[10];
Inputfilename\n"
filename);
if((fp=fopen(filename,"
cannotopenfile%s\n"
ch=getchar();
while(ch!
='
){
fputc(ch,fp);
4.以下程序完成的功能是:
{FILE*fp;
fp=fopen("
\\TC\\FILE\\test.txt"
if(fp==NULL){
cannotopentest.txt\n"
ch=fgetc(fp);
=EOF)
{putchar(ch);
5.以下程序完成的功能是:
FILE*in,*out;
if((in=fopen(infile,"
))==NULL)
while(!
feof(in))
fputc(fgetc(in),out);
6.以下程序执行后输出结果是:
inti,k=0,n=0;
fp=fopen("
d1.dat"
for(i=1;
i<
4;
i++)fprintf(fp,"
i);
fscanf(fp,"
%d%d"
&
k,&
n);
%d%d\n"
k,n);
7.以下程序执行后输出结果是:
inti,a[4]={1,2,3,4},b;
data.dat"
for(i=0;
i++)fwrite(&
a[i],sizeof(int),1,fp);
rb"
);
fseek(fp,-2L*sizeof(int).SEEK_END);
/*使位置指针从文件尾向前移2*sizeof(int)字节*/
fread(&
b,sizeof(int),1,fp);
/*从文件中读取sizeof(int)字节的数据到变量b中*/
b);
3
8.设head是node类型的全程量,以head为头指针的链表各节点的值如下图所示。
head→3()→4()→5()→6()→7NULL,调用fun(head)返回值是:
#include<
#defineLENsizeof(structnode)
structnode{
intnun;
structnode*next;
};
intfun(structnode*h)
{intk=0;
structnode*p=h;
while(p!
=NULL){
if(p->
next!
=NULL)k+=p->
num;
p=p->
next;
returnk;
{structnode*head,*p1,*p2;
inti;
head=(structnode*)malloc(LEN);
p1=head;
for(i=3;
=7;
i++)
{p2=(structnode*)malloc(LEN);
p1->
next=p2;
p2->
num=i;
next=NULL;
p1=p2;
printf(“%d\n”,fun(head->
next));
}}
18
9.以下程序执行后输出结果是:
#include<
{structinfo{intdata;
structinfo*pn;
infobase,p;
base=NULL;
for(inti=0;
i<
10;
i++)
{p=(structinfo*)malloc(sizeof(structinfo));
p->
data=i+1;
p->
pn=base;
base=p;
p=base;
while(p!
=NULL)
%2d"
p->
data);
p=p->
pn;
12345678910
六、程序设计题
1.从C盘根目录下名为“xhar2.txt“的文本文件中读取前10个字符,依次显示在屏幕上。
如果文本文件中不足10个字符,则有多少个字符读取并显示多少个字符。
提示:
参考程序段:
for(i=0;
{if(feof(fp))break;
c=fgetc(fp);
putchar();
2.从键盘上读取3个字符串,依次写入D盘根目录下名为“string1.txt”的文本文件。
3;
{gets(s1[i]);
fputs(s1[i],fp);
3.有两个磁盘文件a.dat和b.dat,要求产生一个新的文件c.dat,将b.dat中的数据追加到a.dat后面,并存入到c.dat中。
设两个磁盘文件为文本文件。
以读的方式打开a.dat和b.dat,以写的方式创建c.dat。
先将b.dat的数据复制到c.dat,再将a.bat的数据复制到c.dat。
4.从键盘输入一些字符,逐个把它们存入磁盘文件test.txt中去,直到输入一个#为止。
利用fputc函数将字符写入到磁盘文件中。
5.编程统计C盘Mydir文件夹中文本文件data.txt中字符'
$'
出现的次数。
并将统计结果写入到文本文件C:
\Mydir\res.txt中。
6.读入一个文件,输出其中最长的一行的行号和内容。
以硬回车键'
\n'
作为行的结束标志。
7.编写程序将全班同学的姓名、地址和电话号码写到一个文件class.dat中。
学生的信息可以存放到结构体数组,以fwrite函数写数据到文件中。
8.将6题产生的class.dat文件中的数据按姓名从低到高排列输出到显示器上,并把排了序的数据重新写入到文件class1.dat中。
以fread函数从文件中读入学生的信息,并存放到结构体数组,在数组中进行排序。
排序完毕再写入文件中。
9.利用7题产生的class1.dat文件,编程实现从中直接读取第三个同学的数据。
10.在7题产生的class1.dat文件中插入一个新生的数据,要求插入后的文件数据仍然按姓名顺序排列。
先将数据读入到数组中,插入新的数据后,再写入到文件中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十章 文件 第十