问答题
给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/************found************/
fun (char a)
{ if (*a)
{fun (a+1);
/************found************/
printf( "%c" *a);
}
}
main()
{char s[10] ="abcd";
printf("处理前字符串=%s/n处理后字符串=",s);
fun (s); printf("/n");
}
【正确答案】正确答案:(1) void fun(char *a) (2) printf("%c",*a);
【答案解析】解析:本题中函数的功能是将字符串中的内容逆序。题干中给出的fun函数通过递归调用自身,实现字符串的逆序。 (1)主函数中“fun(s),”语句中的s是数组名,所以在fun函数中参数的定义应该是指针型,“fun(chara)”改为“void fun(char *a)”。 (2) printf函数的调用形式是:printf(格式字符串,输出项表),在格式字符串和输出项表之间有“,”,因此第二个标识处应该是“printf(("%c",*a),”。 函数的定义以及调用、顺序程序设计。