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

admin2013-03-29  28

问题 给定程序MODll.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其他字符不变。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(char*s)
{
/***************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++j

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

最新回复(0)