问题 填空题

下列给定的程序中,函数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); }

答案

参考答案:错误;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’;是一个简单的语法错误。

问答题 简答题
问答题 简答题