【说明】
设串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[i]>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[i]==t.str[j]。
第(4)空也是条件判断语句的条件,题目要求比较结果可能是大于、小于和等于三种情况,程序中已经考虑了其中小于和等于的情况,那么此空应该是考虑大于的情况,因此,此空答案为n>m。
第(5)空在程序的最后,题目中要求函数能返回运算的结果,而根据程序的内容,我们知道结果存放在变量tag中,因此,此空答案为return tag。