2013年计算机三级网络技术上机模拟题及答案解析二十六_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年4月26日
  【答案】
  void jsSort()
  {
  int i,j,k; /*定义计数器变量*/
  int str,half; /*定义存储字符串长度的变量*/
  char temp; /*定义数据交换时的暂存变量*/
  for(i=0;i<20;i++) /*逐行对数据进行处理*/   {
  str=strlen(xx[i]); /*求字符串的长度*/
  half=str/2; /*确定各行中字符串的中间位置*/
  for(j=0;j<half-1;j++) /*对中间位置以前的字符进行升序排序*/
  for(k=j+1;k<half;k++)
  if(xx[i][j]>xx[i][k])
  {
  temp=xx[i][j];
  xx[i][j]=xx[i][k];
  xx[i][k]=temp;
  }
  for(j=half-1,k=str-1;j>=0;j--,k--) /*将左边部分与右边部分对应的字符进行交换*/
  {
  temp=xx[i][j];
  xx[i][j]=xx[i][k];
  xx[i][k]=temp;
  }
  }
  }
  【解析】本题考查对二维字符数组的处理。
  首先要求得各行字符串的长度(利用求字符串长度的strlen()函数),然后利用循环结构逐个访问各行中的每一个字符。
  在本题中,应先确定各行中字符串的中间位置,然后用选择法先对中间位置以前的字符进行升序排序。接着把中间位置前的一个位置定为初始位置,字符串中的最后一个位置也视为初始位置,使两个位置所对应的字符进行交换,交换过后,这两个对应位置(也就是下标值)分别前移,再进行对应位置字符的交换。
首页 1 2 尾页

相关文章