就业数据资源平台
当前位置:首页 > C语言程序设计
2014年全国计算机二级C语言上机模拟试题及答案5

  给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 

  注意:源程序存放在考生文件夹下的BLANK1.C中。 

  不得增行或删行,也不得更改程序的结构! 

  给定源程序: 

  #include  

  #include  

  #define N 5 

  typedef struct 

  { int num; 

  char name[10]; 

  char tel[10]; 

  }STYPE; 

  void check(); 

  int fun(___1___ *std) 

  { 

  ___2___ *fp; int i; 

  if((fp=fopen("myfile5.dat","wb"))==NULL) 

  return(0); 

  printf("\nOutput data to file !\n"); 

  for(i=0; i  fwrite(&std[i], sizeof(STYPE), 1, ___3___); 

  fclose(fp); 

  return (1); 

  } 

  main() 

  { STYPE s[10]={ {1,"aaaaa","111111"},{1,"bbbbb","222222"},{1,"ccccc","333333"}, 

  {1,"ddddd","444444"},{1,"eeeee","555555"}}; 

  int k; 

  k=fun(s); 

  if (k==1) 

  { printf("Succeed!"); check(); } 

  else 

  printf("Fail!"); 

  } 

  void check() 

  { FILE *fp; int i; 

  STYPE s[10]; 

  if((fp=fopen("myfile5.dat","rb"))==NULL) 

  { printf("Fail !!\n"); exit(0); } 

  printf("\nRead file and output to screen :\n"); 

  printf("\n num name tel\n"); 

  for(i=0; i  { fread(&s[i],sizeof(STYPE),1, fp); 

  printf("m %s %s\n",s[i].num,s[i].name,s[i].tel); 

  } 

  fclose(fp); 

  }


  解题思路: 

  本题是要求把指定的学生记录输出到指定的文件中。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。 

  第一处:结构定义自变量,因此应填写STYPE。 

  第二处:在所填行的下面一行,使用fopen来创建一个二进制文件,但文件流的变量名fp已经给出,这样,此处只能填写FILE。 

  每三处:fwrite是把变量中的内容写入指定文件中,再根据fwrite参数的使用要求,所以只能填写文件流变量fp。 

  *************************************************** 

  给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。 

  例如:当s中的字符串为:"ABCDE"时,则t中的字符串应为:"ABCDEEDCBA"。 

  请改正程序中的错误,使它能得出正确的结果。 

  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 

  给定源程序: 

  #include  

  #include  

  void fun (char *s, char *t) 

  { int i, sl; 

  sl = strlen(s); 

  for( i=0; i<=s1; i ++) 

  t[i] = s[i]; 

  for (i=0; i   t[sl+i] = s[sl-i-1]; 

  t[sl] = ’\0’; 

  } 

  main() 

  { char s[100], t[100]; 

  printf("\nPlease enter string s:"); scanf("%s", s); 

  fun(s, t); 

  printf("The result is: %s\n", t); 

  }

就业数据资源平台