教材课后题答案-第8章

2026/1/22 5:20:06

习题8

一 单选题

1.系统的标准输出文件是【 】。

A.硬盘 B.软盘 C.显示器 D.光盘 【答案】C

【解析】系统的标准文件是指特定的设备文件—显示器和键盘。

2.在打开文件时,函数参数中表示处理方式的字符串”wb”的含义是【 】。

A.打开一个已存在的文本文件,只能读取数据 B.打开一个文本文件,只能写入数据

C.打开一个已存在的二进制文件,只能读取数据 D.打开一个二进制文件,只能写入数据 【答案】D

3.fputc函数的功能是向指定文件写入一个字符,并且文件的打开方式必须是【 】才可运用它。 A.只写 B.追加 C.可读写 D.A、B、C均正确 【答案】D

4.若定义了FILE *fp;char ch;且成功地打开了文件,欲将ch 变量中的字符写入文件,则正确的函数调用语句是【 】。 A.fputc(fp,ch); B.putc(ch,fp); C.fputc(ch); C.putchar(ch,fp); 【答案】B

5.有如下定义,用于存放学生数据:

struct student

{char name[20];float score;}st[30]; FILE *fp;

欲将学生数据写入名为stu.dat的二进制文件时,应采用【 】形式打开文件。 A.fp=open(\ B. fp=open(\,\C. fp=open(\ D. fp=open(\ 【答案】D

6.若要打开A盘根目录下名为fdata.dat的文本文件进行读写操作,应调用【 】。

A.fopen(“A:\\fdata.dat”,”w”) B.fopen(“A:\\fdata.dat”,”r”) C.fopen(“A:\\fdata.dat”,”r+”) D.fopen(“A:\\fdata.dat”,”wr”) 【答案】C

7.有如下定义,用于存放学生数据:

struct student

{char name[20];float score;}st[30]; FILE *fp;

设以写方式打开二进制文件后,欲将st数组中30位学生数据写入文件,以下不能实现此功能的语句是【 】。 A.for(i=0;i<30;i++)

fwrite(&st[i],sizeof(struct student),1,fp); B.for(i=0;i<30;i++)

fwrite(st+i,sizeof(struct student),1,fp);

C.fwrite(st,sizeof(struct student),30,fp); D.for(i=0;i<30;i++)

fwrite(st[i],sizeof(struct student),1,fp);

【答案】D

【解析】选项C是用fwrite函数一次写入30个学生数据,其中4个参数的使用均正确。选项A、B、D都是通过for循环一个一个写入学生数据,但在fwrite函数的使用中,选项D的第一个参数写错了,应该是指针类型,即存放数据的首地址。

8.若fp是指向某文件的指针,且读取文件时已读到文件末尾,则库函数feof(fp)的返回值是【 】。

A.EOF B.0 C.非零值 D.NULL 【答案】C

9.rewind函数的功能是【 】。

A.将读写位置指针返回到文件开头 B.将读写位置指针指向文件尾部 C.将读写位置指针移向指定位置 D.读写位置指针指向下一个字符 【答案】A

10.函数调用语句fseek(fp,-10L,2);的含义是【 】。

A.将读写位置指针从文件末尾处向文件开始处移动10个字节 B.将读写位置指针从文件开始处向文件末尾处移动10个字节 C.将读写位置指针从当前位置向文件开始处移动10个字节 D.将读写位置指针从当前位置向文件末尾处移动10个字节 【答案】A 二 填空题

1.C语言对文本文件的存取是以 为单位进行的。 【答案】字节(或字符)

2.将整数-618存到磁盘文件中,以ASCII值形式存储和以二进制形式占用的字节数分别是 【1】 和 【2】 。 【答案】【1】4 【2】4

3.欲将一个字符写入文本文件,可以使用 【1】 、 【2】 或 【3】 函数。 【答案】【1】fputc 【2】putc 【3】fprintf

4.C语言中,在存放单精度实型数据的二进制文件中读取数据,应使用 函数。 【答案】fread

5.feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为 【1】 ,否则为 【 【2】 。

【答案】【1】非0值 【2】0

6.设有如下定义,要求从存放结构体类型数据的二进制文件中读取5个结构体数据送入s数组,请写出调用fread函数形式:fread(s, 【1】 , 【2】 ,fp);

struct st {int a; float b; }s[5];

【答案】sizeof(struct st)或8 【2】5

7.下面程序是先从键盘输入一个文件名,再把键盘输入的字符存入该文件中,并用’*’作为输

入结束标志。填空将程序补充完整。

#include \#include \void main() {FILE *fp;

char fname[40],c;

printf(\ gets(fname);

if((fp= 【1】 )==NULL) {printf(\ printf(\

while((c=getchar())!='*') fputc( 【2】 ,fp); fclose(fp); }

【答案】fopen(fname,”w”) 【2】c

8.下面程序是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。填空将程序补充完整。

#include \void main()

{FILE 【1】 ; fp1=fopen(\ fp2=fopen(\

while(!feof(fp1)) putchar(getc(fp1)); 【2】

while(!feop(fp1)) putc( 【3】 ); fclose(fp1); fclose(fp2); } 【答案】【1】*fp1,*fp2 【2】rewind(fp1); 【3】getc(fp1),fp2 9.下面程序是对二进制整型文件追加5个整数。填空将程序补充完整。

#include \#include \void main() {FILE *fp;

char fname[40];

int x[5]={5,10,15,20,25}; gets(fname);

if((fp=fopen( 【1】 ))==NULL) exit(0); fwrite( 【2】 ,sizeof(int),5,fp); 【3】 ; } 【答案】【1】fname,”ab” 【2】x 【3】fclose(fp)

10.下面程序是从一个二进制文件中读取结构体数据,并将结构体数据显示在屏幕上。填空

将程序补充完整。

#include \struct st

{char name[20]; float score; }stu;

void main() {FILE *fp;

fp=fopen(\ 【1】 ); fread( 【2】 ,1,fp); while(!feof(fp)) {printf(\ fread( 【3】 ,1,fp); }

fclose(fp); } 【答案】【1】”rb” 【2】&stu 【3】&stu 三 阅读程序,写出结果

1.设文件file1.dat的内容为COMPUTER。

#include \#include \void main()

{FILE *fp;char ch;

if((fp=fopen(\ ch=fgetc(fp); while(!feof(fp))

{if(ch>='A'&&ch<='Z') fputc(ch+32,stdout); ch=fgetc(fp); } }

【答案】computer

【解析】此程序从file1.dat文件中读取一个字符后,即判断其是否为大写字母,是则输出为小写字母(大小写字母的ASCII值相差32)。stdout为标准输出文件(显示器)的文件指针。 2. #include \

#include \

void fout(char *fname,char *str) {FILE *fp;

fp=fopen(fname,\ fputs(str,fp); fclose(fp); }

void main()

{FILE *fp;char ch;

fout(\


教材课后题答案-第8章.doc 将本文的Word文档下载到电脑
搜索更多关于: 教材课后题答案-第8章 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219