给定程序MODIl.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,Z转换为a),其他字符不变。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,

admin2015-12-22  17

问题 给定程序MODIl.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,Z转换为a),其他字符不变。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include  
#include  
void fun  
{
/**********found**********/
  while( *s!=’@’)
  {  if(*s>=’A’&& *s<=’Z’  ||*s>=’a’
&& *s<=’z’)
    {  if(*s==’Z’)  *s=’A’;
    else  if(*s:=’z’)  *s=’a’;
    else *s+=1;
    }
/**********found**********/
    (*s)++;
    }
}
main()
{  char s[80];
  printf("\n Enter a string with
length<80.:\n\n"); gets(s);
  printf("\n The string:\n\n");
puts(s);
  fun(s);
  printf("\n\n The Cords:\n\n");
puts(s);
}

选项

答案(1)while(*s) 或while(*s!=’\0’)或while(*s!=0) (2)s++;

解析 函数的功能是将字符串中的字母改为该字母序列的后续字母。
    (1)第一个错误标识下的“while(*s!=’@’)”语句原意是s不指向字符串尾就进入下面的循环,所以对于指针判断不为尾符的语句应该是“while(*s)”或者“while(*s!=’\0’)”或者“while(*s!=0)”。
    (2)第二个标识下“(*s)++;”是对字符内容加1,而原题是对字符位置加1,所以将其改为“s++:”。
转载请注明原文地址:https://kaotiyun.com/show/xWDp777K
0

最新回复(0)