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

admin2010-05-05  50

问题 下列给定的程序中,函数fun()的功能是:判断字符ch是否与str所指字符串中的某个字符相同;若相同,则什么也不做,若相同,则将其插在申的最后。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
       #include  <conio.h>
       #include  <stdio.h>
       #include  <string.h>
       /*************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;
        clrscr();
        printf("\nPlease enter a strzng : ");
               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) 正确:void fun(char *str,char ch) (2) 错误:if(*str==ch) 正确:if(*str==’\0’) (3) 错误;str[1]=’0’; 正确:str[1]=’\0’;

解析 该题的重点就是在while的循环嵌套语句中,由题干信息“若相同,则什么也不做”很容易就能看出if(*str==ch)后面的执行语句是错误的。另外,void指针具有一般性,它们可以指向任何类型的数据。但目前绝大多数C编译所提供的这类函数都返回char指针,再由题目中的定义得出void fun(char str,char ch)的错误信息;str[1]=’0’;是一个简单的语法错误。
转载请注明原文地址:https://kaotiyun.com/show/LHID777K
0

相关试题推荐
最新回复(0)