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

admin2015-06-08  26

问题 给定程序MODll.C中函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将:其插在串的最后。
    请改正程序中的错误,使它能进行正确的操作。
    注意:不要改动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”);get:s(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)第一个标识下,“void fun(char str,char ch)”根据主函数中的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://kaotiyun.com/show/baJp777K
0

最新回复(0)