首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 软件考试 > 考试试题 >

2008年12月程序员笔试考前练习(21)

2008-12-16 
程序员笔试考前练习

    2008年下半年软件考试因故推迟了,这未尝不是一件好事,对于那些准备还不够充分的考生来说,现在正是查漏补缺的好时机,本站为您整理了考前练习题,希望对您有所帮助,祝您考出好成绩!

    【说明】
  该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。
  例如:原文:You He Me
  I am a student.
  结果:Me He You
  student a am I
  原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
  【函数】
  #include<string.h>
  #include<conio.h>
  #include<ctype.h>
  #include<stdio.h>
  char xx[50][80];
  int maxline=0;/*文章的总行数*/
  int ReaaDat(void);
  void WriteDat(void);
  void StrOL(void)
  {
  char*pl,*p2,t[80];
  int i;
  for(i=0;i<maxline;i++)
  {p1=xx[i];t[0]=0;
  while(*p1)p1++;
  while(p1>=xx[i])
  {while(!isalpha(*p1)&&p1!=xx[i])p1--;
  p2=p1;
  while( (1) )p1--;
  if(p1==xx[i])
  if(isalpha(*p1))p1--;
  else if(!isalpha(*(p1+1)))break;
  p2++;
  (2) ;
  strcat(t,p1+1);
  strcat(t," ");
  }
  strcpy(xx[i],t);
  }
  }
  void main()
  {
  if( (3) ){
  printf("数据文件in.dat不能打开!\n\007");
  return;
  }
  StrOL();
  writeDat();
  getch();
  }
  int ReadDat(void)
  {
  FILE*fp;
  int i=0;
  char*p;
  if((fp=fopen("e:\\a\\in.dat","r"))==NULL)return 1;
  while(fgets(xx[i],80,fp)!=NULL){
  p=strchr(xx[i],′\n′);
  if(p)*p=0;
  i++;
  }
  maxline= (4)
  fclose(fp);
  return 0;
  }
  void WriteDat(void)
  {
  FILE*fp;
  int i;
  fp=fopen("e:\\a\\out6.dat","w");
  for(i=0;i< (5) ;i++){
  printf("%s\n",xx[i]);
  fprintf(fp,"%s\n",xx[i]);
  }
  fclose(fp);
  }
  【答案】
  (1)isalpha(*p1)&&p1!=xx[i]
  (2)*p2=0
  (3)ReadDat()
  (4)i
  (5)maxline

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行