模拟试题

3773考试网计算机等级考试模拟试题正文

2013计算机二级C语言上机题库第三十三套及答案解析

来源:2exam.com 2013-6-20 9:15:57

填空题
  给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放 在变量tfname中。 
  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 
  注意:源程序存放在考生文件夹下的BLANK1.C中。 
  不得增行或删行,也不得更改程序的结构! 
  给定源程序: 
  #include <stdio.h> 
  #include <stdlib.h> 
  int fun(char *source, char *target) 
  { FILE *fs,*ft; char ch; 
  if((fs=fopen(source, ___1___))==NULL) 
  return 0; 
  if((ft=fopen(target, "w"))==NULL) 
  return 0; 
  printf("\nThe data in file :\n"); 
  ch=fgetc(fs); 
  while(!feof(___2___)) 
  { putchar( ch ); 
  fputc(ch,___3___); 
  ch=fgetc(fs); 
  } 
  fclose(fs); fclose(ft); 
  printf("\n\n"); 
  return 1; 
  } 
  main() 
  { char sfname[20] ="myfile1",tfname[20]="myfile2"; 
  FILE *myf; int i; char c; 
  myf=fopen(sfname,"w"); 
  printf("\nThe original data :\n"); 
  for(i=1; i<30; i++){ c='A'+rand()%25;fprintf(myf,"%c",c); printf("%c",c); } 
  fclose(myf);printf("\n\n"); 
  if (fun(sfname, tfname)) printf("Succeed!"); 
  else printf("Fail!"); 
  } 
  解题思路: 
  本题要求是把一个文件中的内容复制到另一个文件中。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。 
  第一处:要求打开一个读方式的源文件,因此可以填上"r"或"r+"。打开读文件操作的流是fs。
  第二处:用while循环来判断源文件是否已读到文件结束符,int feof(FILE *stream),因此,此处只能填写fs。 
  第三处:把已经读取的字符写入目标文件中,打开写文件操作的流是ft,因此,此处只能填写ft。

[1] [2] [3] 下一页

触屏版 电脑版
3773考试网 琼ICP备12003406号-1