第十章 文件(2)

2020-04-21 02:22

char ch;

char filename[10]; printf(\ scanf(\

if ((fp = fopen(filename, \ printf(\ exit(0); } ch = getchar(); while(ch != '#') { fputc(ch,fp); putchar(ch); ch = getchar(); } fclose(fp); }

4. 以下程序完成的功能是: #include \main() { FILE *fp; char ch;

fp = fopen(\ if (fp == NULL) {

printf(\ exit(0); } ch = fgetc(fp); while(ch != EOF) { putchar(ch); ch = fgetc(fp); } fclose(fp); }

5. 以下程序完成的功能是: #include \main() {

FILE *in, *out; char ch;

char infile[10], outfile[10];

printf(\ scanf(\

printf(\ scanf(\

if ((in = fopen(infile, \ { printf(\ exit(0); }

if ((out = fopen(outfile, \ { printf(\ exit(0); } while(!feof(in)) fputc(fgetc(in), out); fclose(in); fclose(out); }

6. 以下程序执行后输出结果是:。

#include main( )

{ FILE *fp; int i,k=0,n=0; fp=fopen(\

for(i=1;i<4;i++) fprintf(fp,\ fclose(fp);

fp=fopen(\

fscanf(fp,\ printf(\ fclose(fp); }

7. 以下程序执行后输出结果是:。

#include main( ) { FILE *fp;

int i,a[4]={1,2,3,4},b; fp=fopen(\

for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp);

fp=fopen(\;

fseek(fp,-2L*sizeof(int).SEEK_END);/*使位置指针从文件尾向前移2*sizeof(int)字节*/ fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp);

printf(\} 3

8. 设head是node类型的全程量,以head为头指针的链表各节点的值如下图所示。 head→ 3 ()→4 ()→5 ()→6 ()→7 NULL ,调用fun(head)返回值是:

#include

#define LEN sizeof(struct node) struct node{ int nun;

struct node *next; };

int fun(struct node*h) {int k=0; struct node*p=h; while(p!=NULL){

if(p->next!=NULL)k+=p->num; p=p->next; } return k; }

void main()

{ struct node*head ,*p1,*p2; int i;

head=(struct node *) malloc(LEN);p1=head; for(i=3;i<=7;i++)

{p2=(struct node*)malloc(LEN);p1->next=p2; p2->num=i;p2->next=NULL; p1=p2;printf(“%d\\n”,fun(head->next)); }} 18

9. 以下程序执行后输出结果是:。

# include void main()

{ struct info {int data; struct info *pn;}; info base, p; base=NULL; for(int i=0; i<10; i++)

{ p=(struct info*)malloc(sizeof(struct info)); p->data=i+1;

p->pn=base; base=p; } p=base; while(p!=NULL)

{ printf(\ }

printf(\ }

1 2 3 4 5 6 7 8 9 10

六、程序设计题

1. 从C盘根目录下名为“xhar2.txt“的文本文件中读取前10个字符,依次显示在屏幕上。如果文本文件中不足10个字符,则有多少个字符读取并显示多少个字符。 提示:参考程序段:

for(i=0;i<10;i++) { if(feof(fp)) break; c=fgetc(fp); putchar(); }

2. 从键盘上读取3个字符串,依次写入D盘根目录下名为“string1.txt”的文本文件。 提示:参考程序段:

for(i=0;i<3;i++) { 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文件中插入一个新生的数据,要求插入后的文件数据仍然按姓名顺序排列。

提示:先将数据读入到数组中,插入新的数据后,再写入到文件中。


第十章 文件(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:本科毕业设计论文 纺织工程 长绒棉紧密纺纱工艺设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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