阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。 【函数2.1说明】 函数palindrome(char s[])的功能是,判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符

admin2009-02-15  28

问题 阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
【函数2.1说明】
   函数palindrome(char s[])的功能是,判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。
   【函数2.1】
   int palindrome( char s[ ] )
   {  char * pi, * pj;
      pi=s; pj=s+strlen(s)-1;
      while( pi<pj&&(1)){
          pi ++ ;pj --
      }
      if((2))return -1;
      else return 0;
   }
    【函数2.2说明】
   函数f(char * str,char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。
   例如若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出3个子字符串,分别为“12”、“4”和“5”。
   【函数2.2】
   void f( char * str, char del)
   {  int i ,j ,len;
      len = strlen (str)
      i=0;
      while(i < len) {
          while((3))i++;   /*忽略连续的标志字符*/
          /*寻找从str开始直到标志字符出现的一个子字符串*/
          j=i+1;
           while(str[j] != del && str[j] ! = ’\0’)j ++
           (4): ’\0’;      /*给找到的字符序列置字符串结束标志*/
          printf("%s\t",&str);
           (5);
      }
   }

选项

答案(1)*pi==*pj (2)pi<pj或者等价表达式 (3)str[i]==del (4)str[j] (5)i=j+1

解析 (1)指针pi从左往右移动,指针pj从右往左移动,每移动一次,判断二者指向的元素是否相等,所以此处应填入判断语句*pi= =*pj。(2)pi如果能移动到pj右面,说明字符串是回文字符串,否则返回-1,所以此处应填入pi<pj或者其他等价表达式。(3)此处表达式判断当前字符是否等于标志字符del,即填入str==del。(4)此处表达式为符合要求的字符串置结束标志,此时j已指向最后,所以应填入str[j]即可。(5)此处语句是修改i指针进行下一次循环,所以应填入i=j+1。
转载请注明原文地址:https://jikaoti.com/ti/HTW7FFFM
0

最新回复(0)