给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:asdfghdfl23543。

admin2013-06-12  30

问题 给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
    例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:asdfghdfl23543。   
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include  
#include  
#include  
char *fun(char *s)
{int i, j, k, n; char *p, *t;
  n=strlen(s)+1;
  t=(char*)malloc(n*sizeof(char));
  p=(char*)malloc(n*sizeof(char));
  j=0; k=0;
  for(i=0; i  {if(((s>=’a’)&&(s<=’z’))||((s>=’A’)&&(s<=’Z’))) {
/**********found**********/
       t[j]=【1】; j++;}
     else
     {p[k]=s; k++;}
  }
/**********found**********/
  for(i=0; i<【2】; i++) t[j+i]=p;
/**********found**********/
  t[j+k]= 【3】;
  return t;
}
main()
{char s[80];
  printf("Please input: "); scanf("%s",s);
  printf("\nThe result is: %s\n",fun(s));
}

选项

答案s[i] k 0

解析 第一空:此处是将字母字符s存储在t字符串中,j记录t字符串的长度,故第一空处应为“s”。
第二空:“for(i=0; i<__2__; i++)  t[j+i]=p;”循环变量i从0开始,“t[j+i]=p;”是将p字符串中的k个字符保存在t字符串的后面,p字符串的长度为k,故循环的终止条件是i>=k,因此第二空处应为“k”。
第三空:在C语言中,字符串以“’\0’”结束,故第三处应为“’\0’”或“0”。
转载请注明原文地址:https://kaotiyun.com/show/qrJp777K
0

最新回复(0)