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

admin2013-03-29  30

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

选项

答案(1)j (2)k (3)p

解析 第一空:由审题分析可知,p字符串保存数字字符,j记录p字符串的长度,故第一空处应填“j"。
    第二空:“for(i=0;i<【2】;i++)pD+i]=t;"是将t字符串串里的k个字符放在p字符串后面,t字符串的长度是k,故第二空处应为“k"。
    第三空:p字符串保存了按题干要求的字符内容,函数的返回值应指向字符串地址的指针,故第三处是“p"。
转载请注明原文地址:https://jikaoti.com/ti/9In0FFFM
0

最新回复(0)