填空题
阅读以下函数说明和C语言函数,回答问题。
[说明1]
函数void convelt(chal *a,int n)是用递归方法将一个正整数n按逆序存放到一个字符数组a中,例如,n=123,在a中的存放为'3'、'2'、'1'。
[C函数1]
void convert(char *a,int n)
int i;
if((i=n/10)!=0; convert( (1) ,i);
*a= (2) ;
[说明2]
函数int index(char *s,char *t)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。
[C函数2]
int index(char *s,char *t)
int i,j=0;k=0;
for(i=0;s[i]!:'/0';i++)
( for( (3) ;(t[k]!='/0')&&(s[j]!='/0')&&( (4) );j++,k++);
if( (5) ) return(i);
return(-1);
【正确答案】
1、(1) A+1 (2) n%10+'/0' (3) j=i,k=0 (4) t[k]==s[j] (5) t[k]=='/0'或!t[k]
【答案解析】[解析] 函数1采用递归方法将一个正整数n按逆序存放到一个字符数组a中,递归调用为convert(a+1,i),所以(1)“a+1”。按逆序输出字符保存在数组a中为*a=n%10+'/0',即(2)填“n%10+'/0'”。
函数2检查字符串s中是否含有字符串t是在for循环中实现的。空(3)应填“j=i,k=0”。如果两个字符串中含有相同的字符,则字符串s和字符串t都指向下一个字符,循环继续,直到字符串t结束。所以空(4)应填“t[k]=s[j]”,空(5)应填“t[k]='/0'”或“!t[k]”。