学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 自考“高级语言程序设计”习题答案详解(46

自考“高级语言程序设计”习题答案详解(46)

2007年09月04日    来源:   字体:   打印

  3.编一个程序,将磁盘中的当前目录下名为“ccw1.txt” 的文本文件复制在同一目录下,文件名改为“ccw2.txt”。

  「解」程序需要两个文件指针变量,一个对应读文件,另一个对应写文件。并分别用读和写方式打开两个文件。

  接着是以读文件状态作为循环控制条件,在读文件还未结束下循环,反复读人字符,并将读人字符复写到写文件中。程序如下:

  # include

  # include

  FILE * rp, * wp;

  void main()

  { int c;

  if((rp= fopen(“ccw1.txt”,“r”))== NULL) {

  printf(“Can‘t open file %s.\n”,“ccwl.txt”); exit(0);

  }

  if((wp= fopen(“ccw2.txt”,“w”))== NULL) {

  printf(“Can‘t open file %s.\n”,“ccw2.txt”); exit(0);

  }

  while((c= fgetc(rp))!= EOF)

  fputc( c,wp);

  fclose(wp);

  fclose(rp);

  }

  4.编程序,对名为“CCW.TXT”的磁盘文件中“@”之前的所有字符加密,加密方法是每个字节的内容减10.

  「解」程序从文件读出字符,在字符“@”未出现之前,将读出字符作加密处理后回写。加密循环受文件结束或当前字符是“@”字符控制。程序如下:

  # include

  # include

  # define DALTA 10

  FILE * rp;

  void main()

  { int c;

  if(( rp = fopen(“ccw.txt”,“r+”)) ==NULL ) {

  printf(“Can‘t open file %s.\n”,“ccw.txt”); exit(0);

  }

  while(( c= fgetc(rp))!= EOF) {

  if( c ==‘@’) break;

  c+= DALTA;

  fseek( rp,-1L,1 );

  fputc( c, rp);

  fseek( rp,OL,l);

  }

  fclose(rp);

  }

关闭