阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【说明】 设串s和串t采用顺序存储结构,编写函数实现串s和串t的比较操作,要求比较结果包括大于、小于和等于3种情况。 【函数】 int StrCompare(SSt

admin2010-01-15  30

问题 阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。
    【说明】
   设串s和串t采用顺序存储结构,编写函数实现串s和串t的比较操作,要求比较结果包括大于、小于和等于3种情况。
   【函数】
    int StrCompare(SStrType s, SStrType t)
    {
       int n=s.length, m=(1), i,j,tag;
       i=0; j=0;
       while((2))
           {
               if((3))
                 {
                   i++;
                   j++;
                 }
               else if(s.str>t.str[j])
               {
                    tag=1;
                    return tag;
                 }
               else
                 {
                    tag=-1;
                    return tag;
                 }
           }
       if(n==m)
          tag=0;
       else if((4))
          tag=1;
       else if(n<m)
          tag=-1;
         (5);
   }

选项

答案(1)t.length (2)i<n&&j<m (3)s.str[i]==t.str[j] (4)n>m (5)retrun tag

解析 本题考查用C语言程序实现对串的操作。
   题目要求对顺序存储的串s和串t进行比较,且比较结果可能是大于、小于和等于3种情况。对串的操作是考试中容易出现的内容,串是指由任意个字符构成的有限序列。要判断两个串的大小是通过串中元素的比较来实现的。
   第(1)空是对刚声明的变量进行赋初值操作,前面的n中存放了串s的长度,而对于串t的长度在程序中一直没求过,而是用m来表示,那么此空是将串t的长度存放到变量m中。因此,此空答案为t.length。
   第(2)空是循环的判断条件,从程序不难看出此循环的作用是实现对串s和串t的比较,在进行比较串时,需要对串中逐个元素进行比较,只要串中还有元素,比较就需继续,而判断串中是否还有元素是通过串的长度来实现的。两个串中元素的长度分别存放在变量n和变量m中,因此,此空答案为i<n&&j<m。
   第(3)空是条件判断语句的条件,如果这个条件成立,则两个串中的元素都往后移动一个,再结合下面的程序,不难看出此条件的作用是判断当前两个元素是否相等,如果相等,则执行下面语句。因此,此空答案为s.str==t.str[j]。
   第(4)空也是条件判断语句的条件,题目要求比较结果可能是大于、小于和等于三种情况,程序中已经考虑了其中小于和等于的情况,那么此空应该是考虑大于的情况,因此,此空答案为n>m。
   第(5)空在程序的最后,题目中要求函数能返回运算的结果,而根据程序的内容,我们知道结果存放在变量tag中,因此,此空答案为return tag。
转载请注明原文地址:https://jikaoti.com/ti/OXW7FFFM
0

最新回复(0)