就业数据资源平台
当前位置:首页 > 网络技术
2013计算机等级考试三级网络技术上机模拟题及答案解析3

       下列程序的功能是:把s字符串中所有的字符左移一个位置,串中的第一个字符移到最后。请编制函数chg(char *s)实现程序要求,最后调用函数readwriteDat( )把结果输出到out61.dat文件中。
  例如:s字符串中原有内容为Mn,123xyZ,则调用该函数后,结果为n,123xyZM。
  注意:部分源程序已给出。
  请勿改动主函数main()和输入输出函数readwriteDAT()的内容。
  试题程序:
  #include
  #include
  #include
  #define N 81
  void readwriteDAT();
  void chg(char *s)
  {
  }
  void main()
  {
  char a[N];
  system("CLS");
  printf("Enter a string :");
  gets(a);
  printf("The original string is :");
  puts(a);
  chg(a);
  printf("The string after modified :");
  puts(a);
  readwriteDAT();
  }
  void readwriteDAT()
  { int i;
  char a[N];
  unsigned char *p;
  FILE *rf,*wf;
  rf=fopen("in61.dat","r");
  wf=fopen("out61.dat","w");
  for(i=0;i<10;i++)
  { fgets(a,80,rf);
  p=strchr(a,'\n');
  if(p) *p=0;
  chg(a);
  fprintf(wf,"%s\n",a);
  }
  fclose(rf);
  fclose(wf);
  }


  【答案】
  void chg(char *s)
  {
  int i,str; /*定义变量,保存字符串长度*/
  char ch; /*定义字符暂存变量*/
  str=strlen(s); /*求字符串的长度*/
  ch=*s; /*将第一个字符暂赋给ch*/
  for(i=0;i  *(s+i)=*(s+i+1);
  *(s+str-1)=ch; /*将第一个字符移到最后*/
  }
  【解析】本题考查用指针访问字符串的方法。
  首先,通过字符串处理函数(strlen())求出字符串的长度,保存第一个字符。
  然后,利用一个for循环将字符串依次左移一位。
  最后,将保存的第一个字符移到最后。

就业数据资源平台