给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与s仃所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。 请改正程序中的错误,使它能进行正确的操作。 注意:不要改动main函数,不得增行或删行,也不得更

admin2015-12-22  27

问题 给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与s仃所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。
    请改正程序中的错误,使它能进行正确的操作。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include  
#include  
/**********found**********/
void fun(char str,char ch)
{  while (*str&&*str!=ch) str++;
/**********found**********/
    if(*str==ch)
    {  str[0]=ch;
/**********found**********/
    str[1]=’0’;
    }
  }
  main()
  {  char s[81],c;
    printf("\nPlease enter a string:
\n");gets(s);
    printf("\n Please enter the
character to search:");
    c=getchar();
    fun(s,c);
    printf("\nThe result is%s\n",s);
}

选项

答案(1)void fun(char *str, char ch) (2)if(*str !=ch) (3)str[1]=’\0’;

解析 函数功能首先是查找子串再判断。
    (1)第一个标识下,“voidfun(char str,charch)”根据主函数中的fun函数的调用“fun(s,c)”,知道s为数组名,所以传的应该是数组地址,所以应改为“void fun(char*str,char ch)”。
    (2)while循环中对ch与str进行匹配检查,第二个标识下,是当不同时执行连接操作,那么判断*str与ch是否不同的表达式应该是“if(*str!=ch)”。
    (3)第三个标识下,连接后的新串要添加结尾符,所以正确的表达是将“str[1]=’0’:”改为“str[1]=’\0’;”。
转载请注明原文地址:https://jikaoti.com/ti/4Ii0FFFM
0

最新回复(0)